! function(t, e) {
	if ("object" == typeof exports && "object" == typeof module) module.exports = e();
	else if ("function" == typeof define && define.amd) define([], e);
	else {
		var n = e();
		for (var r in n)("object" == typeof exports ? exports : t)[r] = n[r]
	}
}(window, (function() {
	return function(t) {
		var e = {};

		function n(r) {
			if (e[r]) return e[r].exports;
			var o = e[r] = {
				i: r,
				l: !1,
				exports: {}
			};
			return t[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports
		}
		return n.m = t, n.c = e, n.d = function(t, e, r) {
			n.o(t, e) || Object.defineProperty(t, e, {
				enumerable: !0,
				get: r
			})
		}, n.r = function(t) {
			"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol
				.toStringTag, {
					value: "Module"
				}), Object.defineProperty(t, "__esModule", {
				value: !0
			})
		}, n.t = function(t, e) {
			if (1 & e && (t = n(t)), 8 & e) return t;
			if (4 & e && "object" == typeof t && t && t.__esModule) return t;
			var r = Object.create(null);
			if (n.r(r), Object.defineProperty(r, "default", {
					enumerable: !0,
					value: t
				}), 2 & e && "string" != typeof t)
				for (var o in t) n.d(r, o, function(e) {
					return t[e]
				}.bind(null, o));
			return r
		}, n.n = function(t) {
			var e = t && t.__esModule ? function() {
				return t.default
			} : function() {
				return t
			};
			return n.d(e, "a", e), e
		}, n.o = function(t, e) {
			return Object.prototype.hasOwnProperty.call(t, e)
		}, n.p = "", n(n.s = 19)
	}([function(t, e) {
		t.exports = function() {
			return function() {}
		}
	}, function(t, e, n) {
		const r = n(26),
			o = n(27),
			s = String.fromCharCode(30);
		t.exports = {
			protocol: 4,
			encodePacket: r,
			encodePayload: (t, e) => {
				const n = t.length,
					o = new Array(n);
				let i = 0;
				t.forEach((t, a) => {
					r(t, !1, t => {
						o[a] = t, ++i === n && e(o.join(s))
					})
				})
			},
			decodePacket: o,
			decodePayload: (t, e) => {
				const n = t.split(s),
					r = [];
				for (let t = 0; t < n.length; t++) {
					const s = o(n[t], e);
					if (r.push(s), "error" === s.type) break
				}
				return r
			}
		}
	}, function(t, e, n) {
		function r(t) {
			if (t) return function(t) {
				for (var e in r.prototype) t[e] = r.prototype[e];
				return t
			}(t)
		}
		t.exports = r, r.prototype.on = r.prototype.addEventListener = function(t, e) {
				return this._callbacks = this._callbacks || {}, (this._callbacks["$" + t] = this
					._callbacks["$" + t] || []).push(e), this
			}, r.prototype.once = function(t, e) {
				function n() {
					this.off(t, n), e.apply(this, arguments)
				}
				return n.fn = e, this.on(t, n), this
			}, r.prototype.off = r.prototype.removeListener = r.prototype.removeAllListeners = r
			.prototype.removeEventListener = function(t, e) {
				if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this
					._callbacks = {}, this;
				var n, r = this._callbacks["$" + t];
				if (!r) return this;
				if (1 == arguments.length) return delete this._callbacks["$" + t], this;
				for (var o = 0; o < r.length; o++)
					if ((n = r[o]) === e || n.fn === e) {
						r.splice(o, 1);
						break
					} return 0 === r.length && delete this._callbacks["$" + t], this
			}, r.prototype.emit = function(t) {
				this._callbacks = this._callbacks || {};
				for (var e = new Array(arguments.length - 1), n = this._callbacks["$" + t], r =
					1; r < arguments.length; r++) e[r - 1] = arguments[r];
				if (n) {
					r = 0;
					for (var o = (n = n.slice(0)).length; r < o; ++r) n[r].apply(this, e)
				}
				return this
			}, r.prototype.listeners = function(t) {
				return this._callbacks = this._callbacks || {}, this._callbacks["$" + t] || []
			}, r.prototype.hasListeners = function(t) {
				return !!this.listeners(t).length
			}
	}, function(t, e) {
		t.exports = "undefined" != typeof self ? self : "undefined" != typeof window ? window :
			Function("return this")()
	}, function(t, e, n) {
		const r = n(1),
			o = n(2),
			s = n(0)("engine.io-client:transport");
		t.exports = class extends o {
			constructor(t) {
				super(), this.opts = t, this.query = t.query, this.readyState = "", this
					.socket = t.socket
			}
			onError(t, e) {
				const n = new Error(t);
				return n.type = "TransportError", n.description = e, this.emit("error", n),
					this
			}
			open() {
				return "closed" !== this.readyState && "" !== this.readyState || (this
					.readyState = "opening", this.doOpen()), this
			}
			close() {
				return "opening" !== this.readyState && "open" !== this.readyState || (this
					.doClose(), this.onClose()), this
			}
			send(t) {
				"open" === this.readyState ? this.write(t) : s(
					"transport is not open, discarding packets")
			}
			onOpen() {
				this.readyState = "open", this.writable = !0, this.emit("open")
			}
			onData(t) {
				const e = r.decodePacket(t, this.socket.binaryType);
				this.onPacket(e)
			}
			onPacket(t) {
				this.emit("packet", t)
			}
			onClose() {
				this.readyState = "closed", this.emit("close")
			}
		}
	}, function(t, e) {
		e.encode = function(t) {
			var e = "";
			for (var n in t) t.hasOwnProperty(n) && (e.length && (e += "&"), e +=
				encodeURIComponent(n) + "=" + encodeURIComponent(t[n]));
			return e
		}, e.decode = function(t) {
			for (var e = {}, n = t.split("&"), r = 0, o = n.length; r < o; r++) {
				var s = n[r].split("=");
				e[decodeURIComponent(s[0])] = decodeURIComponent(s[1])
			}
			return e
		}
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Decoder = e.Encoder = e.PacketType = e.protocol = void 0;
		const r = n(2),
			o = n(39),
			s = n(16),
			i = n(0)("socket.io-parser");
		var a;
		e.protocol = 5,
			function(t) {
				t[t.CONNECT = 0] = "CONNECT", t[t.DISCONNECT = 1] = "DISCONNECT", t[t.EVENT = 2] =
					"EVENT", t[t.ACK = 3] = "ACK", t[t.CONNECT_ERROR = 4] = "CONNECT_ERROR", t[t
						.BINARY_EVENT = 5] = "BINARY_EVENT", t[t.BINARY_ACK = 6] = "BINARY_ACK"
			}(a = e.PacketType || (e.PacketType = {}));
		e.Encoder = class {
			encode(t) {
				return i("encoding packet %j", t), t.type !== a.EVENT && t.type !== a.ACK ||
					!s.hasBinary(t) ? [this.encodeAsString(t)] : (t.type = t.type === a
						.EVENT ? a.BINARY_EVENT : a.BINARY_ACK, this.encodeAsBinary(t))
			}
			encodeAsString(t) {
				let e = "" + t.type;
				return t.type !== a.BINARY_EVENT && t.type !== a.BINARY_ACK || (e += t
						.attachments + "-"), t.nsp && "/" !== t.nsp && (e += t.nsp + ","),
					null != t.id && (e += t.id), null != t.data && (e += JSON.stringify(t
						.data)), i("encoded %j as %s", t, e), e
			}
			encodeAsBinary(t) {
				const e = o.deconstructPacket(t),
					n = this.encodeAsString(e.packet),
					r = e.buffers;
				return r.unshift(n), r
			}
		};
		class c extends r {
			constructor() {
				super()
			}
			add(t) {
				let e;
				if ("string" == typeof t) e = this.decodeString(t), e.type === a.BINARY_EVENT ||
					e.type === a.BINARY_ACK ? (this.reconstructor = new h(e), 0 === e
						.attachments && super.emit("decoded", e)) : super.emit("decoded", e);
				else {
					if (!s.isBinary(t) && !t.base64) throw new Error("Unknown type: " + t);
					if (!this.reconstructor) throw new Error(
						"got binary data when not reconstructing a packet");
					e = this.reconstructor.takeBinaryData(t), e && (this.reconstructor = null,
						super.emit("decoded", e))
				}
			}
			decodeString(t) {
				let e = 0;
				const n = {
					type: Number(t.charAt(0))
				};
				if (void 0 === a[n.type]) throw new Error("unknown packet type " + n.type);
				if (n.type === a.BINARY_EVENT || n.type === a.BINARY_ACK) {
					const r = e + 1;
					for (;
						"-" !== t.charAt(++e) && e != t.length;);
					const o = t.substring(r, e);
					if (o != Number(o) || "-" !== t.charAt(e)) throw new Error(
						"Illegal attachments");
					n.attachments = Number(o)
				}
				if ("/" === t.charAt(e + 1)) {
					const r = e + 1;
					for (; ++e;) {
						if ("," === t.charAt(e)) break;
						if (e === t.length) break
					}
					n.nsp = t.substring(r, e)
				} else n.nsp = "/";
				const r = t.charAt(e + 1);
				if ("" !== r && Number(r) == r) {
					const r = e + 1;
					for (; ++e;) {
						const n = t.charAt(e);
						if (null == n || Number(n) != n) {
							--e;
							break
						}
						if (e === t.length) break
					}
					n.id = Number(t.substring(r, e + 1))
				}
				if (t.charAt(++e)) {
					const r = function(t) {
						try {
							return JSON.parse(t)
						} catch (t) {
							return !1
						}
					}(t.substr(e));
					if (!c.isPayloadValid(n.type, r)) throw new Error("invalid payload");
					n.data = r
				}
				return i("decoded %s as %j", t, n), n
			}
			static isPayloadValid(t, e) {
				switch (t) {
					case a.CONNECT:
						return "object" == typeof e;
					case a.DISCONNECT:
						return void 0 === e;
					case a.CONNECT_ERROR:
						return "string" == typeof e || "object" == typeof e;
					case a.EVENT:
					case a.BINARY_EVENT:
						return Array.isArray(e) && e.length > 0;
					case a.ACK:
					case a.BINARY_ACK:
						return Array.isArray(e)
				}
			}
			destroy() {
				this.reconstructor && this.reconstructor.finishedReconstruction()
			}
		}
		e.Decoder = c;
		class h {
			constructor(t) {
				this.packet = t, this.buffers = [], this.reconPack = t
			}
			takeBinaryData(t) {
				if (this.buffers.push(t), this.buffers.length === this.reconPack.attachments) {
					const t = o.reconstructPacket(this.reconPack, this.buffers);
					return this.finishedReconstruction(), t
				}
				return null
			}
			finishedReconstruction() {
				this.reconPack = null, this.buffers = []
			}
		}
	}, function(t, e) {
		var n =
			/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
			r = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port",
				"relative", "path", "directory", "file", "query", "anchor"
			];
		t.exports = function(t) {
			var e = t,
				o = t.indexOf("["),
				s = t.indexOf("]"); - 1 != o && -1 != s && (t = t.substring(0, o) + t.substring(
				o, s).replace(/:/g, ";") + t.substring(s, t.length));
			for (var i, a, c = n.exec(t || ""), h = {}, u = 14; u--;) h[r[u]] = c[u] || "";
			return -1 != o && -1 != s && (h.source = e, h.host = h.host.substring(1, h.host
					.length - 1).replace(/;/g, ":"), h.authority = h.authority.replace("[",
					"").replace("]", "").replace(/;/g, ":"), h.ipv6uri = !0), h.pathNames =
				function(t, e) {
					var n = e.replace(/\/{2,9}/g, "/").split("/");
					"/" != e.substr(0, 1) && 0 !== e.length || n.splice(0, 1);
					"/" == e.substr(e.length - 1, 1) && n.splice(n.length - 1, 1);
					return n
				}(0, h.path), h.queryKey = (i = h.query, a = {}, i.replace(
					/(?:^|&)([^&=]*)=?([^&]*)/g, (function(t, e, n) {
						e && (a[e] = n)
					})), a), h
		}
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Manager = void 0;
		const r = n(22),
			o = n(15),
			s = n(6),
			i = n(17),
			a = n(40),
			c = n(18),
			h = n(0)("socket.io-client:manager");
		class u extends c.StrictEventEmitter {
			constructor(t, e) {
				super(), this.nsps = {}, this.subs = [], t && "object" == typeof t && (e =
						t, t = void 0), (e = e || {}).path = e.path || "/socket.io", this
					.opts = e, this.reconnection(!1 !== e.reconnection), this
					.reconnectionAttempts(e.reconnectionAttempts || 1 / 0), this
					.reconnectionDelay(e.reconnectionDelay || 1e3), this
					.reconnectionDelayMax(e.reconnectionDelayMax || 5e3), this
					.randomizationFactor(e.randomizationFactor || .5), this.backoff =
				new a({
						min: this.reconnectionDelay(),
						max: this.reconnectionDelayMax(),
						jitter: this.randomizationFactor()
					}), this.timeout(null == e.timeout ? 2e4 : e.timeout), this
					._readyState = "closed", this.uri = t;
				const n = e.parser || s;
				this.encoder = new n.Encoder, this.decoder = new n.Decoder, this
					._autoConnect = !1 !== e.autoConnect, this._autoConnect && this.open()
			}
			reconnection(t) {
				return arguments.length ? (this._reconnection = !!t, this) : this
					._reconnection
			}
			reconnectionAttempts(t) {
				return void 0 === t ? this._reconnectionAttempts : (this
					._reconnectionAttempts = t, this)
			}
			reconnectionDelay(t) {
				var e;
				return void 0 === t ? this._reconnectionDelay : (this._reconnectionDelay =
					t, null === (e = this.backoff) || void 0 === e || e.setMin(t), this)
			}
			randomizationFactor(t) {
				var e;
				return void 0 === t ? this._randomizationFactor : (this
					._randomizationFactor = t, null === (e = this.backoff) || void 0 ===
					e || e.setJitter(t), this)
			}
			reconnectionDelayMax(t) {
				var e;
				return void 0 === t ? this._reconnectionDelayMax : (this
					._reconnectionDelayMax = t, null === (e = this.backoff) ||
					void 0 === e || e.setMax(t), this)
			}
			timeout(t) {
				return arguments.length ? (this._timeout = t, this) : this._timeout
			}
			maybeReconnectOnOpen() {
				!this._reconnecting && this._reconnection && 0 === this.backoff.attempts &&
					this.reconnect()
			}
			open(t) {
				if (h("readyState %s", this._readyState), ~this._readyState.indexOf("open"))
					return this;
				h("opening %s", this.uri), this.engine = r(this.uri, this.opts);
				const e = this.engine,
					n = this;
				this._readyState = "opening", this.skipReconnect = !1;
				const o = i.on(e, "open", (function() {
						n.onopen(), t && t()
					})),
					s = i.on(e, "error", e => {
						h("error"), n.cleanup(), n._readyState = "closed", this
							.emitReserved("error", e), t ? t(e) : n
							.maybeReconnectOnOpen()
					});
				if (!1 !== this._timeout) {
					const t = this._timeout;
					h("connect attempt will timeout after %d", t), 0 === t && o();
					const n = setTimeout(() => {
						h("connect attempt timed out after %d", t), o(), e.close(),
							e.emit("error", new Error("timeout"))
					}, t);
					this.opts.autoUnref && n.unref(), this.subs.push((function() {
						clearTimeout(n)
					}))
				}
				return this.subs.push(o), this.subs.push(s), this
			}
			connect(t) {
				return this.open(t)
			}
			onopen() {
				h("open"), this.cleanup(), this._readyState = "open", this.emitReserved(
					"open");
				const t = this.engine;
				this.subs.push(i.on(t, "ping", this.onping.bind(this)), i.on(t, "data", this
						.ondata.bind(this)), i.on(t, "error", this.onerror.bind(this)),
					i.on(t, "close", this.onclose.bind(this)), i.on(this.decoder,
						"decoded", this.ondecoded.bind(this)))
			}
			onping() {
				this.emitReserved("ping")
			}
			ondata(t) {
				this.decoder.add(t)
			}
			ondecoded(t) {
				this.emitReserved("packet", t)
			}
			onerror(t) {
				h("error", t), this.emitReserved("error", t)
			}
			socket(t, e) {
				let n = this.nsps[t];
				return n || (n = new o.Socket(this, t, e), this.nsps[t] = n), n
			}
			_destroy(t) {
				const e = Object.keys(this.nsps);
				for (const t of e) {
					if (this.nsps[t].active) return void h(
						"socket %s is still active, skipping close", t)
				}
				this._close()
			}
			_packet(t) {
				h("writing packet %j", t);
				const e = this.encoder.encode(t);
				for (let n = 0; n < e.length; n++) this.engine.write(e[n], t.options)
			}
			cleanup() {
				h("cleanup"), this.subs.forEach(t => t()), this.subs.length = 0, this
					.decoder.destroy()
			}
			_close() {
				h("disconnect"), this.skipReconnect = !0, this._reconnecting = !1,
					"opening" === this._readyState && this.cleanup(), this.backoff.reset(),
					this._readyState = "closed", this.engine && this.engine.close()
			}
			disconnect() {
				return this._close()
			}
			onclose(t) {
				h("onclose"), this.cleanup(), this.backoff.reset(), this._readyState =
					"closed", this.emitReserved("close", t), this._reconnection && !this
					.skipReconnect && this.reconnect()
			}
			reconnect() {
				if (this._reconnecting || this.skipReconnect) return this;
				const t = this;
				if (this.backoff.attempts >= this._reconnectionAttempts) h(
					"reconnect failed"), this.backoff.reset(), this.emitReserved(
					"reconnect_failed"), this._reconnecting = !1;
				else {
					const e = this.backoff.duration();
					h("will wait %dms before reconnect attempt", e), this._reconnecting = !
					0;
					const n = setTimeout(() => {
						t.skipReconnect || (h("attempting reconnect"), this
							.emitReserved("reconnect_attempt", t.backoff
								.attempts), t.skipReconnect || t.open(e => {
								e ? (h("reconnect attempt error"), t
									._reconnecting = !1, t.reconnect(),
									this.emitReserved("reconnect_error",
										e)) : (h("reconnect success"), t
									.onreconnect())
							}))
					}, e);
					this.opts.autoUnref && n.unref(), this.subs.push((function() {
						clearTimeout(n)
					}))
				}
			}
			onreconnect() {
				const t = this.backoff.attempts;
				this._reconnecting = !1, this.backoff.reset(), this.emitReserved(
					"reconnect", t)
			}
		}
		e.Manager = u
	}, function(t, e, n) {
		const r = n(10),
			o = n(25),
			s = n(29),
			i = n(30);
		e.polling = function(t) {
			let e, n = !1,
				i = !1;
			const a = !1 !== t.jsonp;
			if ("undefined" != typeof location) {
				const e = "https:" === location.protocol;
				let r = location.port;
				r || (r = e ? 443 : 80), n = t.hostname !== location.hostname || r !== t.port,
					i = t.secure !== e
			}
			if (t.xdomain = n, t.xscheme = i, e = new r(t), "open" in e && !t.forceJSONP)
			return new o(t);
			if (!a) throw new Error("JSONP disabled");
			return new s(t)
		}, e.websocket = i
	}, function(t, e, n) {
		const r = n(24),
			o = n(3);
		t.exports = function(t) {
			const e = t.xdomain,
				n = t.xscheme,
				s = t.enablesXDR;
			try {
				if ("undefined" != typeof XMLHttpRequest && (!e || r)) return new XMLHttpRequest
			} catch (t) {}
			try {
				if ("undefined" != typeof XDomainRequest && !n && s) return new XDomainRequest
			} catch (t) {}
			if (!e) try {
				return new(o[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")
			} catch (t) {}
		}
	}, function(t, e, n) {
		const r = n(4),
			o = n(5),
			s = n(1),
			i = n(13),
			a = n(0)("engine.io-client:polling");
		t.exports = class extends r {
			get name() {
				return "polling"
			}
			doOpen() {
				this.poll()
			}
			pause(t) {
				const e = this;

				function n() {
					a("paused"), e.readyState = "paused", t()
				}
				if (this.readyState = "pausing", this.polling || !this.writable) {
					let t = 0;
					this.polling && (a("we are currently polling - waiting to pause"), t++, this
						.once("pollComplete", (function() {
							a("pre-pause polling complete"), --t || n()
						}))), this.writable || (a(
						"we are currently writing - waiting to pause"), t++, this.once(
						"drain", (function() {
							a("pre-pause writing complete"), --t || n()
						})))
				} else n()
			}
			poll() {
				a("polling"), this.polling = !0, this.doPoll(), this.emit("poll")
			}
			onData(t) {
				const e = this;
				a("polling got data %s", t);
				s.decodePayload(t, this.socket.binaryType).forEach((function(t, n, r) {
					if ("opening" === e.readyState && "open" === t.type && e
						.onOpen(), "close" === t.type) return e.onClose(), !1;
					e.onPacket(t)
				})), "closed" !== this.readyState && (this.polling = !1, this.emit(
					"pollComplete"), "open" === this.readyState ? this.poll() : a(
					'ignoring poll - transport state "%s"', this.readyState))
			}
			doClose() {
				const t = this;

				function e() {
					a("writing close packet"), t.write([{
						type: "close"
					}])
				}
				"open" === this.readyState ? (a("transport open - closing"), e()) : (a(
					"transport not open - deferring close"), this.once("open", e))
			}
			write(t) {
				this.writable = !1, s.encodePayload(t, t => {
					this.doWrite(t, () => {
						this.writable = !0, this.emit("drain")
					})
				})
			}
			uri() {
				let t = this.query || {};
				const e = this.opts.secure ? "https" : "http";
				let n = "";
				!1 !== this.opts.timestampRequests && (t[this.opts.timestampParam] = i()), this
					.supportsBinary || t.sid || (t.b64 = 1), t = o.encode(t), this.opts.port &&
					("https" === e && 443 !== Number(this.opts.port) || "http" === e && 80 !==
						Number(this.opts.port)) && (n = ":" + this.opts.port), t.length && (t =
						"?" + t);
				return e + "://" + (-1 !== this.opts.hostname.indexOf(":") ? "[" + this.opts
					.hostname + "]" : this.opts.hostname) + n + this.opts.path + t
			}
		}
	}, function(t, e) {
		const n = Object.create(null);
		n.open = "0", n.close = "1", n.ping = "2", n.pong = "3", n.message = "4", n.upgrade = "5", n
			.noop = "6";
		const r = Object.create(null);
		Object.keys(n).forEach(t => {
			r[n[t]] = t
		});
		t.exports = {
			PACKET_TYPES: n,
			PACKET_TYPES_REVERSE: r,
			ERROR_PACKET: {
				type: "error",
				data: "parser error"
			}
		}
	}, function(t, e, n) {
		"use strict";
		var r, o = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),
			s = {},
			i = 0,
			a = 0;

		function c(t) {
			var e = "";
			do {
				e = o[t % 64] + e, t = Math.floor(t / 64)
			} while (t > 0);
			return e
		}

		function h() {
			var t = c(+new Date);
			return t !== r ? (i = 0, r = t) : t + "." + c(i++)
		}
		for (; a < 64; a++) s[o[a]] = a;
		h.encode = c, h.decode = function(t) {
			var e = 0;
			for (a = 0; a < t.length; a++) e = 64 * e + s[t.charAt(a)];
			return e
		}, t.exports = h
	}, function(t, e) {
		t.exports.pick = (t, ...e) => e.reduce((e, n) => (t.hasOwnProperty(n) && (e[n] = t[n]),
		e), {})
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Socket = void 0;
		const r = n(6),
			o = n(17),
			s = n(18),
			i = n(0)("socket.io-client:socket"),
			a = Object.freeze({
				connect: 1,
				connect_error: 1,
				disconnect: 1,
				disconnecting: 1,
				newListener: 1,
				removeListener: 1
			});
		class c extends s.StrictEventEmitter {
			constructor(t, e, n) {
				super(), this.receiveBuffer = [], this.sendBuffer = [], this.ids = 0, this
					.acks = {}, this.flags = {}, this.io = t, this.nsp = e, this.ids = 0,
					this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this
					.connected = !1, this.disconnected = !0, this.flags = {}, n && n.auth &&
					(this.auth = n.auth), this.io._autoConnect && this.open()
			}
			subEvents() {
				if (this.subs) return;
				const t = this.io;
				this.subs = [o.on(t, "open", this.onopen.bind(this)), o.on(t, "packet", this
						.onpacket.bind(this)), o.on(t, "error", this.onerror.bind(
					this)), o.on(t, "close", this.onclose.bind(this))
				]
			}
			get active() {
				return !!this.subs
			}
			connect() {
				return this.connected || (this.subEvents(), this.io._reconnecting || this.io
					.open(), "open" === this.io._readyState && this.onopen()), this
			}
			open() {
				return this.connect()
			}
			send(...t) {
				return t.unshift("message"), this.emit.apply(this, t), this
			}
			emit(t, ...e) {
				if (a.hasOwnProperty(t)) throw new Error('"' + t +
					'" is a reserved event name');
				e.unshift(t);
				const n = {
					type: r.PacketType.EVENT,
					data: e,
					options: {}
				};
				n.options.compress = !1 !== this.flags.compress, "function" == typeof e[e
					.length - 1] && (i("emitting packet with ack id %d", this.ids), this
					.acks[this.ids] = e.pop(), n.id = this.ids++);
				const o = this.io.engine && this.io.engine.transport && this.io.engine
					.transport.writable;
				return this.flags.volatile && (!o || !this.connected) ? i(
						"discard packet as the transport is not currently writable") : this
					.connected ? this.packet(n) : this.sendBuffer.push(n), this.flags = {},
					this
			}
			packet(t) {
				t.nsp = this.nsp, this.io._packet(t)
			}
			onopen() {
				i("transport is open - connecting"), "function" == typeof this.auth ? this
					.auth(t => {
						this.packet({
							type: r.PacketType.CONNECT,
							data: t
						})
					}) : this.packet({
						type: r.PacketType.CONNECT,
						data: this.auth
					})
			}
			onerror(t) {
				this.connected || this.emitReserved("connect_error", t)
			}
			onclose(t) {
				i("close (%s)", t), this.connected = !1, this.disconnected = !0, delete this
					.id, this.emitReserved("disconnect", t)
			}
			onpacket(t) {
				if (t.nsp === this.nsp) switch (t.type) {
					case r.PacketType.CONNECT:
						if (t.data && t.data.sid) {
							const e = t.data.sid;
							this.onconnect(e)
						} else this.emitReserved("connect_error", new Error(
							"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"
							));
						break;
					case r.PacketType.EVENT:
					case r.PacketType.BINARY_EVENT:
						this.onevent(t);
						break;
					case r.PacketType.ACK:
					case r.PacketType.BINARY_ACK:
						this.onack(t);
						break;
					case r.PacketType.DISCONNECT:
						this.ondisconnect();
						break;
					case r.PacketType.CONNECT_ERROR:
						const e = new Error(t.data.message);
						e.data = t.data.data, this.emitReserved("connect_error", e)
				}
			}
			onevent(t) {
				const e = t.data || [];
				i("emitting event %j", e), null != t.id && (i(
						"attaching ack callback to event"), e.push(this.ack(t.id))), this
					.connected ? this.emitEvent(e) : this.receiveBuffer.push(Object.freeze(
						e))
			}
			emitEvent(t) {
				if (this._anyListeners && this._anyListeners.length) {
					const e = this._anyListeners.slice();
					for (const n of e) n.apply(this, t)
				}
				super.emit.apply(this, t)
			}
			ack(t) {
				const e = this;
				let n = !1;
				return function(...o) {
					n || (n = !0, i("sending ack %j", o), e.packet({
						type: r.PacketType.ACK,
						id: t,
						data: o
					}))
				}
			}
			onack(t) {
				const e = this.acks[t.id];
				"function" == typeof e ? (i("calling ack %s with %j", t.id, t.data), e
					.apply(this, t.data), delete this.acks[t.id]) : i("bad ack %s", t
					.id)
			}
			onconnect(t) {
				i("socket connected with id %s", t), this.id = t, this.connected = !0, this
					.disconnected = !1, this.emitReserved("connect"), this.emitBuffered()
			}
			emitBuffered() {
				this.receiveBuffer.forEach(t => this.emitEvent(t)), this.receiveBuffer = [],
					this.sendBuffer.forEach(t => this.packet(t)), this.sendBuffer = []
			}
			ondisconnect() {
				i("server disconnect (%s)", this.nsp), this.destroy(), this.onclose(
					"io server disconnect")
			}
			destroy() {
				this.subs && (this.subs.forEach(t => t()), this.subs = void 0), this.io
					._destroy(this)
			}
			disconnect() {
				return this.connected && (i("performing disconnect (%s)", this.nsp), this
					.packet({
						type: r.PacketType.DISCONNECT
					})), this.destroy(), this.connected && this.onclose(
					"io client disconnect"), this
			}
			close() {
				return this.disconnect()
			}
			compress(t) {
				return this.flags.compress = t, this
			}
			get volatile() {
				return this.flags.volatile = !0, this
			}
			onAny(t) {
				return this._anyListeners = this._anyListeners || [], this._anyListeners
					.push(t), this
			}
			prependAny(t) {
				return this._anyListeners = this._anyListeners || [], this._anyListeners
					.unshift(t), this
			}
			offAny(t) {
				if (!this._anyListeners) return this;
				if (t) {
					const e = this._anyListeners;
					for (let n = 0; n < e.length; n++)
						if (t === e[n]) return e.splice(n, 1), this
				} else this._anyListeners = [];
				return this
			}
			listenersAny() {
				return this._anyListeners || []
			}
		}
		e.Socket = c
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.hasBinary = e.isBinary = void 0;
		const r = "function" == typeof ArrayBuffer,
			o = Object.prototype.toString,
			s = "function" == typeof Blob || "undefined" != typeof Blob &&
			"[object BlobConstructor]" === o.call(Blob),
			i = "function" == typeof File || "undefined" != typeof File &&
			"[object FileConstructor]" === o.call(File);

		function a(t) {
			return r && (t instanceof ArrayBuffer || (t => "function" == typeof ArrayBuffer.isView ?
					ArrayBuffer.isView(t) : t.buffer instanceof ArrayBuffer)(t)) || s &&
				t instanceof Blob || i && t instanceof File
		}
		e.isBinary = a, e.hasBinary = function t(e, n) {
			if (!e || "object" != typeof e) return !1;
			if (Array.isArray(e)) {
				for (let n = 0, r = e.length; n < r; n++)
					if (t(e[n])) return !0;
				return !1
			}
			if (a(e)) return !0;
			if (e.toJSON && "function" == typeof e.toJSON && 1 === arguments.length) return t(e
				.toJSON(), !0);
			for (const n in e)
				if (Object.prototype.hasOwnProperty.call(e, n) && t(e[n])) return !0;
			return !1
		}
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.on = void 0, e.on = function(t, e, n) {
			return t.on(e, n),
				function() {
					t.off(e, n)
				}
		}
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.StrictEventEmitter = void 0;
		const r = n(2);
		e.StrictEventEmitter = class extends r {
			on(t, e) {
				return super.on(t, e), this
			}
			once(t, e) {
				return super.once(t, e), this
			}
			emit(t, ...e) {
				return super.emit(t, ...e), this
			}
			emitReserved(t, ...e) {
				return super.emit(t, ...e), this
			}
			listeners(t) {
				return super.listeners(t)
			}
		}
	}, function(t, e, n) {
		t.exports = n(20)
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Socket = e.io = e.Manager = e.protocol = void 0;
		const r = n(21),
			o = n(8),
			s = n(15);
		Object.defineProperty(e, "Socket", {
			enumerable: !0,
			get: function() {
				return s.Socket
			}
		});
		const i = n(0)("socket.io-client");
		t.exports = e = c;
		const a = e.managers = {};

		function c(t, e) {
			"object" == typeof t && (e = t, t = void 0), e = e || {};
			const n = r.url(t, e.path),
				s = n.source,
				c = n.id,
				h = n.path,
				u = a[c] && h in a[c].nsps;
			let f;
			return e.forceNew || e["force new connection"] || !1 === e.multiplex || u ? (i(
					"ignoring socket cache for %s", s), f = new o.Manager(s, e)) : (a[c] || (i(
					"new io instance for %s", s), a[c] = new o.Manager(s, e)), f = a[c]), n.query &&
				!e.query && (e.query = n.queryKey), f.socket(n.path, e)
		}
		e.io = c;
		var h = n(6);
		Object.defineProperty(e, "protocol", {
			enumerable: !0,
			get: function() {
				return h.protocol
			}
		}), e.connect = c;
		var u = n(8);
		Object.defineProperty(e, "Manager", {
			enumerable: !0,
			get: function() {
				return u.Manager
			}
		}), e.default = c
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.url = void 0;
		const r = n(7),
			o = n(0)("socket.io-client:url");
		e.url = function(t, e = "", n) {
			let s = t;
			n = n || "undefined" != typeof location && location, null == t && (t = n.protocol +
				"//" + n.host), "string" == typeof t && ("/" === t.charAt(0) && (t = "/" ===
				t.charAt(1) ? n.protocol + t : n.host + t), /^(https?|wss?):\/\//.test(
				t) || (o("protocol-less url %s", t), t = void 0 !== n ? n.protocol +
				"//" + t : "https://" + t), o("parse %s", t), s = r(t)), s.port || (
				/^(http|ws)$/.test(s.protocol) ? s.port = "80" : /^(http|ws)s$/.test(s
					.protocol) && (s.port = "443")), s.path = s.path || "/";
			const i = -1 !== s.host.indexOf(":") ? "[" + s.host + "]" : s.host;
			return s.id = s.protocol + "://" + i + ":" + s.port + e, s.href = s.protocol +
				"://" + i + (n && n.port === s.port ? "" : ":" + s.port), s
		}
	}, function(t, e, n) {
		const r = n(23);
		t.exports = (t, e) => new r(t, e), t.exports.Socket = r, t.exports.protocol = r.protocol, t
			.exports.Transport = n(4), t.exports.transports = n(9), t.exports.parser = n(1)
	}, function(t, e, n) {
		const r = n(9),
			o = n(2),
			s = n(0)("engine.io-client:socket"),
			i = n(1),
			a = n(7),
			c = n(5);
		class h extends o {
			constructor(t, e = {}) {
				super(), t && "object" == typeof t && (e = t, t = null), t ? (t = a(t), e
						.hostname = t.host, e.secure = "https" === t.protocol || "wss" === t
						.protocol, e.port = t.port, t.query && (e.query = t.query)) : e.host &&
					(e.hostname = a(e.host).host), this.secure = null != e.secure ? e.secure :
					"undefined" != typeof location && "https:" === location.protocol, e
					.hostname && !e.port && (e.port = this.secure ? "443" : "80"), this
					.hostname = e.hostname || ("undefined" != typeof location ? location
						.hostname : "localhost"), this.port = e.port || ("undefined" !=
						typeof location && location.port ? location.port : this.secure ? 443 :
						80), this.transports = e.transports || ["polling", "websocket"], this
					.readyState = "", this.writeBuffer = [], this.prevBufferLen = 0, this.opts =
					Object.assign({
						path: "/engine.io",
						agent: !1,
						withCredentials: !1,
						upgrade: !0,
						jsonp: !0,
						timestampParam: "t",
						rememberUpgrade: !1,
						rejectUnauthorized: !0,
						perMessageDeflate: {
							threshold: 1024
						},
						transportOptions: {}
					}, e), this.opts.path = this.opts.path.replace(/\/$/, "") + "/", "string" ==
					typeof this.opts.query && (this.opts.query = c.decode(this.opts.query)),
					this.id = null, this.upgrades = null, this.pingInterval = null, this
					.pingTimeout = null, this.pingTimeoutTimer = null, "function" ==
					typeof addEventListener && (addEventListener("beforeunload", () => {
						this.transport && (this.transport.removeAllListeners(), this
							.transport.close())
					}, !1), "localhost" !== this.hostname && (this.offlineEventListener =
					() => {
							this.onClose("transport close")
						}, addEventListener("offline", this.offlineEventListener, !1))), this
					.open()
			}
			createTransport(t) {
				s('creating transport "%s"', t);
				const e = function(t) {
					const e = {};
					for (let n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
					return e
				}(this.opts.query);
				e.EIO = i.protocol, e.transport = t, this.id && (e.sid = this.id);
				const n = Object.assign({}, this.opts.transportOptions[t], this.opts, {
					query: e,
					socket: this,
					hostname: this.hostname,
					secure: this.secure,
					port: this.port
				});
				return s("options: %j", n), new r[t](n)
			}
			open() {
				let t;
				if (this.opts.rememberUpgrade && h.priorWebsocketSuccess && -1 !== this
					.transports.indexOf("websocket")) t = "websocket";
				else {
					if (0 === this.transports.length) {
						const t = this;
						return void setTimeout((function() {
							t.emit("error", "No transports available")
						}), 0)
					}
					t = this.transports[0]
				}
				this.readyState = "opening";
				try {
					t = this.createTransport(t)
				} catch (t) {
					return s("error while creating transport: %s", t), this.transports.shift(),
						void this.open()
				}
				t.open(), this.setTransport(t)
			}
			setTransport(t) {
				s("setting transport %s", t.name);
				const e = this;
				this.transport && (s("clearing existing transport %s", this.transport.name),
					this.transport.removeAllListeners()), this.transport = t, t.on("drain",
					(function() {
						e.onDrain()
					})).on("packet", (function(t) {
					e.onPacket(t)
				})).on("error", (function(t) {
					e.onError(t)
				})).on("close", (function() {
					e.onClose("transport close")
				}))
			}
			probe(t) {
				s('probing transport "%s"', t);
				let e = this.createTransport(t, {
						probe: 1
					}),
					n = !1;
				const r = this;

				function o() {
					if (r.onlyBinaryUpgrades) {
						const t = !this.supportsBinary && r.transport.supportsBinary;
						n = n || t
					}
					n || (s('probe transport "%s" opened', t), e.send([{
						type: "ping",
						data: "probe"
					}]), e.once("packet", (function(o) {
						if (!n)
							if ("pong" === o.type && "probe" === o.data) {
								if (s('probe transport "%s" pong', t), r
									.upgrading = !0, r.emit("upgrading", e), !e)
									return;
								h.priorWebsocketSuccess = "websocket" === e
									.name, s('pausing current transport "%s"', r
										.transport.name), r.transport.pause((
										function() {
											n || "closed" !== r
												.readyState && (s(
														"changing transport and sending upgrade packet"
														), p(), r
													.setTransport(e), e
													.send([{
														type: "upgrade"
													}]), r.emit("upgrade",
														e), e = null, r
													.upgrading = !1, r
													.flush())
										}))
							} else {
								s('probe transport "%s" failed', t);
								const n = new Error("probe error");
								n.transport = e.name, r.emit("upgradeError", n)
							}
					})))
				}

				function i() {
					n || (n = !0, p(), e.close(), e = null)
				}

				function a(n) {
					const o = new Error("probe error: " + n);
					o.transport = e.name, i(), s(
						'probe transport "%s" failed because of error: %s', t, n), r.emit(
						"upgradeError", o)
				}

				function c() {
					a("transport closed")
				}

				function u() {
					a("socket closed")
				}

				function f(t) {
					e && t.name !== e.name && (s('"%s" works - aborting "%s"', t.name, e.name),
						i())
				}

				function p() {
					e.removeListener("open", o), e.removeListener("error", a), e.removeListener(
						"close", c), r.removeListener("close", u), r.removeListener(
						"upgrading", f)
				}
				h.priorWebsocketSuccess = !1, e.once("open", o), e.once("error", a), e.once(
					"close", c), this.once("close", u), this.once("upgrading", f), e.open()
			}
			onOpen() {
				if (s("socket open"), this.readyState = "open", h.priorWebsocketSuccess =
					"websocket" === this.transport.name, this.emit("open"), this.flush(),
					"open" === this.readyState && this.opts.upgrade && this.transport.pause) {
					s("starting upgrade probes");
					let t = 0;
					const e = this.upgrades.length;
					for (; t < e; t++) this.probe(this.upgrades[t])
				}
			}
			onPacket(t) {
				if ("opening" === this.readyState || "open" === this.readyState || "closing" ===
					this.readyState) switch (s('socket receive: type "%s", data "%s"', t.type, t
						.data), this.emit("packet", t), this.emit("heartbeat"), t.type) {
					case "open":
						this.onHandshake(JSON.parse(t.data));
						break;
					case "ping":
						this.resetPingTimeout(), this.sendPacket("pong"), this.emit("pong");
						break;
					case "error":
						const e = new Error("server error");
						e.code = t.data, this.onError(e);
						break;
					case "message":
						this.emit("data", t.data), this.emit("message", t.data)
				} else s('packet received with socket readyState "%s"', this.readyState)
			}
			onHandshake(t) {
				this.emit("handshake", t), this.id = t.sid, this.transport.query.sid = t.sid,
					this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t
					.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), "closed" !==
					this.readyState && this.resetPingTimeout()
			}
			resetPingTimeout() {
				clearTimeout(this.pingTimeoutTimer), this.pingTimeoutTimer = setTimeout(() => {
						this.onClose("ping timeout")
					}, this.pingInterval + this.pingTimeout), this.opts.autoUnref && this
					.pingTimeoutTimer.unref()
			}
			onDrain() {
				this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 ===
					this.writeBuffer.length ? this.emit("drain") : this.flush()
			}
			flush() {
				"closed" !== this.readyState && this.transport.writable && !this.upgrading &&
					this.writeBuffer.length && (s("flushing %d packets in socket", this
							.writeBuffer.length), this.transport.send(this.writeBuffer), this
						.prevBufferLen = this.writeBuffer.length, this.emit("flush"))
			}
			write(t, e, n) {
				return this.sendPacket("message", t, e, n), this
			}
			send(t, e, n) {
				return this.sendPacket("message", t, e, n), this
			}
			sendPacket(t, e, n, r) {
				if ("function" == typeof e && (r = e, e = void 0), "function" == typeof n && (
						r = n, n = null), "closing" === this.readyState || "closed" === this
					.readyState) return;
				(n = n || {}).compress = !1 !== n.compress;
				const o = {
					type: t,
					data: e,
					options: n
				};
				this.emit("packetCreate", o), this.writeBuffer.push(o), r && this.once("flush",
					r), this.flush()
			}
			close() {
				const t = this;

				function e() {
					t.onClose("forced close"), s("socket closing - telling transport to close"),
						t.transport.close()
				}

				function n() {
					t.removeListener("upgrade", n), t.removeListener("upgradeError", n), e()
				}

				function r() {
					t.once("upgrade", n), t.once("upgradeError", n)
				}
				return "opening" !== this.readyState && "open" !== this.readyState || (this
					.readyState = "closing", this.writeBuffer.length ? this.once("drain", (
						function() {
							this.upgrading ? r() : e()
						})) : this.upgrading ? r() : e()), this
			}
			onError(t) {
				s("socket error %j", t), h.priorWebsocketSuccess = !1, this.emit("error", t),
					this.onClose("transport error", t)
			}
			onClose(t, e) {
				if ("opening" === this.readyState || "open" === this.readyState || "closing" ===
					this.readyState) {
					s('socket close with reason: "%s"', t);
					const n = this;
					clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer),
						this.transport.removeAllListeners("close"), this.transport.close(), this
						.transport.removeAllListeners(), "function" ==
						typeof removeEventListener && removeEventListener("offline", this
							.offlineEventListener, !1), this.readyState = "closed", this.id =
						null, this.emit("close", t, e), n.writeBuffer = [], n.prevBufferLen = 0
				}
			}
			filterUpgrades(t) {
				const e = [];
				let n = 0;
				const r = t.length;
				for (; n < r; n++) ~this.transports.indexOf(t[n]) && e.push(t[n]);
				return e
			}
		}
		h.priorWebsocketSuccess = !1, h.protocol = i.protocol, t.exports = h
	}, function(t, e) {
		try {
			t.exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in
				new XMLHttpRequest
		} catch (e) {
			t.exports = !1
		}
	}, function(t, e, n) {
		const r = n(10),
			o = n(11),
			s = n(2),
			{
				pick: i
			} = n(14),
			a = n(3),
			c = n(0)("engine.io-client:polling-xhr");

		function h() {}
		const u = null != new r({
			xdomain: !1
		}).responseType;
		class f extends s {
			constructor(t, e) {
				super(), this.opts = e, this.method = e.method || "GET", this.uri = t, this
					.async = !1 !== e.async, this.data = void 0 !== e.data ? e.data : null, this
					.create()
			}
			create() {
				const t = i(this.opts, "agent", "enablesXDR", "pfx", "key", "passphrase",
					"cert", "ca", "ciphers", "rejectUnauthorized", "autoUnref");
				t.xdomain = !!this.opts.xd, t.xscheme = !!this.opts.xs;
				const e = this.xhr = new r(t),
					n = this;
				try {
					c("xhr open %s: %s", this.method, this.uri), e.open(this.method, this.uri,
						this.async);
					try {
						if (this.opts.extraHeaders) {
							e.setDisableHeaderCheck && e.setDisableHeaderCheck(!0);
							for (let t in this.opts.extraHeaders) this.opts.extraHeaders
								.hasOwnProperty(t) && e.setRequestHeader(t, this.opts
									.extraHeaders[t])
						}
					} catch (t) {}
					if ("POST" === this.method) try {
						e.setRequestHeader("Content-type", "text/plain;charset=UTF-8")
					} catch (t) {}
					try {
						e.setRequestHeader("Accept", "*/*")
					} catch (t) {}
					"withCredentials" in e && (e.withCredentials = this.opts.withCredentials),
						this.opts.requestTimeout && (e.timeout = this.opts.requestTimeout), this
						.hasXDR() ? (e.onload = function() {
							n.onLoad()
						}, e.onerror = function() {
							n.onError(e.responseText)
						}) : e.onreadystatechange = function() {
							4 === e.readyState && (200 === e.status || 1223 === e.status ? n
								.onLoad() : setTimeout((function() {
									n.onError("number" == typeof e.status ? e
										.status : 0)
								}), 0))
						}, c("xhr data %s", this.data), e.send(this.data)
				} catch (t) {
					return void setTimeout((function() {
						n.onError(t)
					}), 0)
				}
				"undefined" != typeof document && (this.index = f.requestsCount++, f.requests[
					this.index] = this)
			}
			onSuccess() {
				this.emit("success"), this.cleanup()
			}
			onData(t) {
				this.emit("data", t), this.onSuccess()
			}
			onError(t) {
				this.emit("error", t), this.cleanup(!0)
			}
			cleanup(t) {
				if (void 0 !== this.xhr && null !== this.xhr) {
					if (this.hasXDR() ? this.xhr.onload = this.xhr.onerror = h : this.xhr
						.onreadystatechange = h, t) try {
						this.xhr.abort()
					} catch (t) {}
					"undefined" != typeof document && delete f.requests[this.index], this.xhr =
						null
				}
			}
			onLoad() {
				const t = this.xhr.responseText;
				null !== t && this.onData(t)
			}
			hasXDR() {
				return "undefined" != typeof XDomainRequest && !this.xs && this.enablesXDR
			}
			abort() {
				this.cleanup()
			}
		}
		if (f.requestsCount = 0, f.requests = {}, "undefined" != typeof document)
			if ("function" == typeof attachEvent) attachEvent("onunload", p);
			else if ("function" == typeof addEventListener) {
			addEventListener("onpagehide" in a ? "pagehide" : "unload", p, !1)
		}

		function p() {
			for (let t in f.requests) f.requests.hasOwnProperty(t) && f.requests[t].abort()
		}
		t.exports = class extends o {
			constructor(t) {
				if (super(t), "undefined" != typeof location) {
					const e = "https:" === location.protocol;
					let n = location.port;
					n || (n = e ? 443 : 80), this.xd = "undefined" != typeof location && t
						.hostname !== location.hostname || n !== t.port, this.xs = t
						.secure !== e
				}
				const e = t && t.forceBase64;
				this.supportsBinary = u && !e
			}
			request(t = {}) {
				return Object.assign(t, {
					xd: this.xd,
					xs: this.xs
				}, this.opts), new f(this.uri(), t)
			}
			doWrite(t, e) {
				const n = this.request({
						method: "POST",
						data: t
					}),
					r = this;
				n.on("success", e), n.on("error", (function(t) {
					r.onError("xhr post error", t)
				}))
			}
			doPoll() {
				c("xhr poll");
				const t = this.request(),
					e = this;
				t.on("data", (function(t) {
					e.onData(t)
				})), t.on("error", (function(t) {
					e.onError("xhr poll error", t)
				})), this.pollXhr = t
			}
		}, t.exports.Request = f
	}, function(t, e, n) {
		const {
			PACKET_TYPES: r
		} = n(12), o = "function" == typeof Blob || "undefined" != typeof Blob &&
			"[object BlobConstructor]" === Object.prototype.toString.call(Blob), s = "function" ==
			typeof ArrayBuffer, i = (t, e) => {
				const n = new FileReader;
				return n.onload = function() {
					const t = n.result.split(",")[1];
					e("b" + t)
				}, n.readAsDataURL(t)
			};
		t.exports = ({
			type: t,
			data: e
		}, n, a) => {
			return o && e instanceof Blob ? n ? a(e) : i(e, a) : s && (
					e instanceof ArrayBuffer || (c = e, "function" == typeof ArrayBuffer
						.isView ? ArrayBuffer.isView(c) : c && c.buffer instanceof ArrayBuffer)
					) ? n ? a(e instanceof ArrayBuffer ? e : e.buffer) : i(new Blob([e]), a) :
				a(r[t] + (e || ""));
			var c
		}
	}, function(t, e, n) {
		const {
			PACKET_TYPES_REVERSE: r,
			ERROR_PACKET: o
		} = n(12);
		let s;
		"function" == typeof ArrayBuffer && (s = n(28));
		const i = (t, e) => {
				if (s) {
					const n = s.decode(t);
					return a(n, e)
				}
				return {
					base64: !0,
					data: t
				}
			},
			a = (t, e) => {
				switch (e) {
					case "blob":
						return t instanceof ArrayBuffer ? new Blob([t]) : t;
					case "arraybuffer":
					default:
						return t
				}
			};
		t.exports = (t, e) => {
			if ("string" != typeof t) return {
				type: "message",
				data: a(t, e)
			};
			const n = t.charAt(0);
			if ("b" === n) return {
				type: "message",
				data: i(t.substring(1), e)
			};
			return r[n] ? t.length > 1 ? {
				type: r[n],
				data: t.substring(1)
			} : {
				type: r[n]
			} : o
		}
	}, function(t, e) {
		! function(t) {
			"use strict";
			e.encode = function(e) {
				var n, r = new Uint8Array(e),
					o = r.length,
					s = "";
				for (n = 0; n < o; n += 3) s += t[r[n] >> 2], s += t[(3 & r[n]) << 4 | r[n +
					1] >> 4], s += t[(15 & r[n + 1]) << 2 | r[n + 2] >> 6], s += t[63 & r[
					n + 2]];
				return o % 3 == 2 ? s = s.substring(0, s.length - 1) + "=" : o % 3 == 1 && (s =
					s.substring(0, s.length - 2) + "=="), s
			}, e.decode = function(e) {
				var n, r, o, s, i, a = .75 * e.length,
					c = e.length,
					h = 0;
				"=" === e[e.length - 1] && (a--, "=" === e[e.length - 2] && a--);
				var u = new ArrayBuffer(a),
					f = new Uint8Array(u);
				for (n = 0; n < c; n += 4) r = t.indexOf(e[n]), o = t.indexOf(e[n + 1]), s = t
					.indexOf(e[n + 2]), i = t.indexOf(e[n + 3]), f[h++] = r << 2 | o >> 4, f[
						h++] = (15 & o) << 4 | s >> 2, f[h++] = (3 & s) << 6 | 63 & i;
				return u
			}
		}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
	}, function(t, e, n) {
		const r = n(11),
			o = n(3),
			s = /\n/g,
			i = /\\n/g;
		let a;
		t.exports = class extends r {
			constructor(t) {
				super(t), this.query = this.query || {}, a || (a = o.___eio = o.___eio ||
				[]), this.index = a.length;
				const e = this;
				a.push((function(t) {
					e.onData(t)
				})), this.query.j = this.index
			}
			get supportsBinary() {
				return !1
			}
			doClose() {
				this.script && (this.script.onerror = () => {}, this.script.parentNode
					.removeChild(this.script), this.script = null), this.form && (this
					.form.parentNode.removeChild(this.form), this.form = null, this
					.iframe = null), super.doClose()
			}
			doPoll() {
				const t = this,
					e = document.createElement("script");
				this.script && (this.script.parentNode.removeChild(this.script), this
						.script = null), e.async = !0, e.src = this.uri(), e.onerror =
					function(e) {
						t.onError("jsonp poll error", e)
					};
				const n = document.getElementsByTagName("script")[0];
				n ? n.parentNode.insertBefore(e, n) : (document.head || document.body)
					.appendChild(e), this.script = e;
				"undefined" != typeof navigator && /gecko/i.test(navigator.userAgent) &&
					setTimeout((function() {
						const t = document.createElement("iframe");
						document.body.appendChild(t), document.body.removeChild(t)
					}), 100)
			}
			doWrite(t, e) {
				const n = this;
				let r;
				if (!this.form) {
					const t = document.createElement("form"),
						e = document.createElement("textarea"),
						n = this.iframeId = "eio_iframe_" + this.index;
					t.className = "socketio", t.style.position = "absolute", t.style.top =
						"-1000px", t.style.left = "-1000px", t.target = n, t.method =
						"POST", t.setAttribute("accept-charset", "utf-8"), e.name = "d", t
						.appendChild(e), document.body.appendChild(t), this.form = t, this
						.area = e
				}

				function o() {
					a(), e()
				}

				function a() {
					if (n.iframe) try {
						n.form.removeChild(n.iframe)
					} catch (t) {
						n.onError("jsonp polling iframe removal error", t)
					}
					try {
						const t = '<iframe src="javascript:0" name="' + n.iframeId + '">';
						r = document.createElement(t)
					} catch (t) {
						r = document.createElement("iframe"), r.name = n.iframeId, r.src =
							"javascript:0"
					}
					r.id = n.iframeId, n.form.appendChild(r), n.iframe = r
				}
				this.form.action = this.uri(), a(), t = t.replace(i, "\\\n"), this.area
					.value = t.replace(s, "\\n");
				try {
					this.form.submit()
				} catch (t) {}
				this.iframe.attachEvent ? this.iframe.onreadystatechange = function() {
					"complete" === n.iframe.readyState && o()
				} : this.iframe.onload = o
			}
		}
	}, function(t, e, n) {
		(function(e) {
			const r = n(1),
				o = n(5),
				s = n(13),
				i = n(4),
				{
					pick: a
				} = n(14),
				c = n(3),
				h = n(0)("engine.io-client:websocket");
			let u = c.WebSocket || c.MozWebSocket,
				f = !0,
				p = "arraybuffer";
			"undefined" == typeof window && (u = n(36), f = !1, p = "nodebuffer");
			const l = "undefined" != typeof navigator && "string" == typeof navigator.product &&
				"reactnative" === navigator.product.toLowerCase();
			class d extends i {
				constructor(t) {
					super(t), this.supportsBinary = !t.forceBase64
				}
				get name() {
					return "websocket"
				}
				doOpen() {
					if (!this.check()) return;
					const t = this.uri(),
						e = this.opts.protocols,
						n = l ? {} : a(this.opts, "agent", "perMessageDeflate", "pfx",
							"key", "passphrase", "cert", "ca", "ciphers",
							"rejectUnauthorized", "localAddress", "protocolVersion",
							"origin", "maxPayload", "family", "checkServerIdentity");
					this.opts.extraHeaders && (n.headers = this.opts.extraHeaders);
					try {
						this.ws = f && !l ? e ? new u(t, e) : new u(t) : new u(t, e, n)
					} catch (t) {
						return console.log("error", t), this.emit("error", t)
					}
					this.ws.binaryType = this.socket.binaryType || p, this
						.addEventListeners()
				}
				addEventListeners() {
					this.ws.onopen = () => {
							this.opts.autoUnref && this.ws._socket.unref(), this.onOpen()
						}, this.ws.onclose = this.onClose.bind(this), this.ws.onmessage =
						t => this.onData(t.data), this.ws.onerror = t => this.onError(
							"websocket error", t)
				}
				write(t) {
					const n = this;
					this.writable = !1;
					let o = t.length,
						s = 0;
					const i = o;
					for (; s < i; s++) ! function(t) {
						r.encodePacket(t, n.supportsBinary, (function(r) {
							const s = {};
							if (!f && (t.options && (s.compress = t.options
										.compress), n.opts
									.perMessageDeflate)) {
								("string" == typeof r ? e.byteLength(r) : r
									.length) < n.opts.perMessageDeflate
									.threshold && (s.compress = !1)
							}
							try {
								f ? n.ws.send(r) : n.ws.send(r, s)
							} catch (t) {
								h("websocket closed before onclose event")
							}--o || a()
						}))
					}(t[s]);

					function a() {
						n.emit("flush"), setTimeout((function() {
							n.writable = !0, n.emit("drain")
						}), 0)
					}
				}
				onClose() {
					i.prototype.onClose.call(this)
				}
				doClose() {
					void 0 !== this.ws && (this.ws.close(), this.ws = null)
				}
				uri() {
					let t = this.query || {};
					const e = this.opts.secure ? "wss" : "ws";
					let n = "";
					this.opts.port && ("wss" === e && 443 !== Number(this.opts.port) ||
							"ws" === e && 80 !== Number(this.opts.port)) && (n = ":" + this
							.opts.port), this.opts.timestampRequests && (t[this.opts
							.timestampParam] = s()), this.supportsBinary || (t.b64 = 1), t =
						o.encode(t), t.length && (t = "?" + t);
					return e + "://" + (-1 !== this.opts.hostname.indexOf(":") ? "[" + this
							.opts.hostname + "]" : this.opts.hostname) + n + this.opts
						.path + t
				}
				check() {
					return !(!u || "__initialize" in u && this.name === d.prototype.name)
				}
			}
			t.exports = d
		}).call(this, n(31).Buffer)
	}, function(t, e, n) {
		"use strict";
		(function(t) {
			/*!
			 * The buffer module from node.js, for the browser.
			 *
			 * @author   Feross Aboukhadijeh <http://feross.org>
			 * @license  MIT
			 */
			var r = n(33),
				o = n(34),
				s = n(35);

			function i() {
				return c.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823
			}

			function a(t, e) {
				if (i() < e) throw new RangeError("Invalid typed array length");
				return c.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = c.prototype :
					(null === t && (t = new c(e)), t.length = e), t
			}

			function c(t, e, n) {
				if (!(c.TYPED_ARRAY_SUPPORT || this instanceof c)) return new c(t, e, n);
				if ("number" == typeof t) {
					if ("string" == typeof e) throw new Error(
						"If encoding is specified then the first argument must be a string"
						);
					return f(this, t)
				}
				return h(this, t, e, n)
			}

			function h(t, e, n, r) {
				if ("number" == typeof e) throw new TypeError(
					'"value" argument must not be a number');
				return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function(
					t, e, n, r) {
					if (e.byteLength, n < 0 || e.byteLength < n) throw new RangeError(
						"'offset' is out of bounds");
					if (e.byteLength < n + (r || 0)) throw new RangeError(
						"'length' is out of bounds");
					e = void 0 === n && void 0 === r ? new Uint8Array(e) : void 0 === r ?
						new Uint8Array(e, n) : new Uint8Array(e, n, r);
					c.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = c.prototype : t = p(t, e);
					return t
				}(t, e, n, r) : "string" == typeof e ? function(t, e, n) {
					"string" == typeof n && "" !== n || (n = "utf8");
					if (!c.isEncoding(n)) throw new TypeError(
						'"encoding" must be a valid string encoding');
					var r = 0 | d(e, n),
						o = (t = a(t, r)).write(e, n);
					o !== r && (t = t.slice(0, o));
					return t
				}(t, e, n) : function(t, e) {
					if (c.isBuffer(e)) {
						var n = 0 | l(e.length);
						return 0 === (t = a(t, n)).length || e.copy(t, 0, 0, n), t
					}
					if (e) {
						if ("undefined" != typeof ArrayBuffer && e
							.buffer instanceof ArrayBuffer || "length" in e)
						return "number" != typeof e.length || (r = e.length) != r ? a(t,
								0) : p(t, e);
						if ("Buffer" === e.type && s(e.data)) return p(t, e.data)
					}
					var r;
					throw new TypeError(
						"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object."
						)
				}(t, e)
			}

			function u(t) {
				if ("number" != typeof t) throw new TypeError(
					'"size" argument must be a number');
				if (t < 0) throw new RangeError('"size" argument must not be negative')
			}

			function f(t, e) {
				if (u(e), t = a(t, e < 0 ? 0 : 0 | l(e)), !c.TYPED_ARRAY_SUPPORT)
					for (var n = 0; n < e; ++n) t[n] = 0;
				return t
			}

			function p(t, e) {
				var n = e.length < 0 ? 0 : 0 | l(e.length);
				t = a(t, n);
				for (var r = 0; r < n; r += 1) t[r] = 255 & e[r];
				return t
			}

			function l(t) {
				if (t >= i()) throw new RangeError(
					"Attempt to allocate Buffer larger than maximum size: 0x" + i()
					.toString(16) + " bytes");
				return 0 | t
			}

			function d(t, e) {
				if (c.isBuffer(t)) return t.length;
				if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer
					.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t
					.byteLength;
				"string" != typeof t && (t = "" + t);
				var n = t.length;
				if (0 === n) return 0;
				for (var r = !1;;) switch (e) {
					case "ascii":
					case "latin1":
					case "binary":
						return n;
					case "utf8":
					case "utf-8":
					case void 0:
						return Y(t).length;
					case "ucs2":
					case "ucs-2":
					case "utf16le":
					case "utf-16le":
						return 2 * n;
					case "hex":
						return n >>> 1;
					case "base64":
						return q(t).length;
					default:
						if (r) return Y(t).length;
						e = ("" + e).toLowerCase(), r = !0
				}
			}

			function y(t, e, n) {
				var r = !1;
				if ((void 0 === e || e < 0) && (e = 0), e > this.length) return "";
				if ((void 0 === n || n > this.length) && (n = this.length), n <= 0) return "";
				if ((n >>>= 0) <= (e >>>= 0)) return "";
				for (t || (t = "utf8");;) switch (t) {
					case "hex":
						return P(this, e, n);
					case "utf8":
					case "utf-8":
						return R(this, e, n);
					case "ascii":
						return S(this, e, n);
					case "latin1":
					case "binary":
						return x(this, e, n);
					case "base64":
						return T(this, e, n);
					case "ucs2":
					case "ucs-2":
					case "utf16le":
					case "utf-16le":
						return C(this, e, n);
					default:
						if (r) throw new TypeError("Unknown encoding: " + t);
						t = (t + "").toLowerCase(), r = !0
				}
			}

			function g(t, e, n) {
				var r = t[e];
				t[e] = t[n], t[n] = r
			}

			function m(t, e, n, r, o) {
				if (0 === t.length) return -1;
				if ("string" == typeof n ? (r = n, n = 0) : n > 2147483647 ? n = 2147483647 :
					n < -2147483648 && (n = -2147483648), n = +n, isNaN(n) && (n = o ? 0 : t
						.length - 1), n < 0 && (n = t.length + n), n >= t.length) {
					if (o) return -1;
					n = t.length - 1
				} else if (n < 0) {
					if (!o) return -1;
					n = 0
				}
				if ("string" == typeof e && (e = c.from(e, r)), c.isBuffer(e)) return 0 === e
					.length ? -1 : v(t, e, n, r, o);
				if ("number" == typeof e) return e &= 255, c.TYPED_ARRAY_SUPPORT &&
					"function" == typeof Uint8Array.prototype.indexOf ? o ? Uint8Array
					.prototype.indexOf.call(t, e, n) : Uint8Array.prototype.lastIndexOf
					.call(t, e, n) : v(t, [e], n, r, o);
				throw new TypeError("val must be string, number or Buffer")
			}

			function v(t, e, n, r, o) {
				var s, i = 1,
					a = t.length,
					c = e.length;
				if (void 0 !== r && ("ucs2" === (r = String(r).toLowerCase()) || "ucs-2" ===
						r || "utf16le" === r || "utf-16le" === r)) {
					if (t.length < 2 || e.length < 2) return -1;
					i = 2, a /= 2, c /= 2, n /= 2
				}

				function h(t, e) {
					return 1 === i ? t[e] : t.readUInt16BE(e * i)
				}
				if (o) {
					var u = -1;
					for (s = n; s < a; s++)
						if (h(t, s) === h(e, -1 === u ? 0 : s - u)) {
							if (-1 === u && (u = s), s - u + 1 === c) return u * i
						} else - 1 !== u && (s -= s - u), u = -1
				} else
					for (n + c > a && (n = a - c), s = n; s >= 0; s--) {
						for (var f = !0, p = 0; p < c; p++)
							if (h(t, s + p) !== h(e, p)) {
								f = !1;
								break
							} if (f) return s
					}
				return -1
			}

			function b(t, e, n, r) {
				n = Number(n) || 0;
				var o = t.length - n;
				r ? (r = Number(r)) > o && (r = o) : r = o;
				var s = e.length;
				if (s % 2 != 0) throw new TypeError("Invalid hex string");
				r > s / 2 && (r = s / 2);
				for (var i = 0; i < r; ++i) {
					var a = parseInt(e.substr(2 * i, 2), 16);
					if (isNaN(a)) return i;
					t[n + i] = a
				}
				return i
			}

			function w(t, e, n, r) {
				return F(Y(e, t.length - n), t, n, r)
			}

			function _(t, e, n, r) {
				return F(function(t) {
					for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t
						.charCodeAt(n));
					return e
				}(e), t, n, r)
			}

			function E(t, e, n, r) {
				return _(t, e, n, r)
			}

			function k(t, e, n, r) {
				return F(q(e), t, n, r)
			}

			function A(t, e, n, r) {
				return F(function(t, e) {
					for (var n, r, o, s = [], i = 0; i < t.length && !((e -= 2) < 0); ++
						i) n = t.charCodeAt(i), r = n >> 8, o = n % 256, s.push(o), s
						.push(r);
					return s
				}(e, t.length - n), t, n, r)
			}

			function T(t, e, n) {
				return 0 === e && n === t.length ? r.fromByteArray(t) : r.fromByteArray(t.slice(
					e, n))
			}

			function R(t, e, n) {
				n = Math.min(t.length, n);
				for (var r = [], o = e; o < n;) {
					var s, i, a, c, h = t[o],
						u = null,
						f = h > 239 ? 4 : h > 223 ? 3 : h > 191 ? 2 : 1;
					if (o + f <= n) switch (f) {
						case 1:
							h < 128 && (u = h);
							break;
						case 2:
							128 == (192 & (s = t[o + 1])) && (c = (31 & h) << 6 | 63 & s) >
								127 && (u = c);
							break;
						case 3:
							s = t[o + 1], i = t[o + 2], 128 == (192 & s) && 128 == (192 &
								i) && (c = (15 & h) << 12 | (63 & s) << 6 | 63 & i) >
								2047 && (c < 55296 || c > 57343) && (u = c);
							break;
						case 4:
							s = t[o + 1], i = t[o + 2], a = t[o + 3], 128 == (192 & s) &&
								128 == (192 & i) && 128 == (192 & a) && (c = (15 & h) <<
									18 | (63 & s) << 12 | (63 & i) << 6 | 63 & a) > 65535 &&
								c < 1114112 && (u = c)
					}
					null === u ? (u = 65533, f = 1) : u > 65535 && (u -= 65536, r.push(u >>>
						10 & 1023 | 55296), u = 56320 | 1023 & u), r.push(u), o += f
				}
				return function(t) {
					var e = t.length;
					if (e <= 4096) return String.fromCharCode.apply(String, t);
					var n = "",
						r = 0;
					for (; r < e;) n += String.fromCharCode.apply(String, t.slice(r, r +=
						4096));
					return n
				}(r)
			}
			e.Buffer = c, e.SlowBuffer = function(t) {
					+t != t && (t = 0);
					return c.alloc(+t)
				}, e.INSPECT_MAX_BYTES = 50, c.TYPED_ARRAY_SUPPORT = void 0 !== t
				.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function() {
					try {
						var t = new Uint8Array(1);
						return t.__proto__ = {
								__proto__: Uint8Array.prototype,
								foo: function() {
									return 42
								}
							}, 42 === t.foo() && "function" == typeof t.subarray && 0 === t
							.subarray(1, 1).byteLength
					} catch (t) {
						return !1
					}
				}(), e.kMaxLength = i(), c.poolSize = 8192, c._augment = function(t) {
					return t.__proto__ = c.prototype, t
				}, c.from = function(t, e, n) {
					return h(null, t, e, n)
				}, c.TYPED_ARRAY_SUPPORT && (c.prototype.__proto__ = Uint8Array.prototype, c
					.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species &&
					c[Symbol.species] === c && Object.defineProperty(c, Symbol.species, {
						value: null,
						configurable: !0
					})), c.alloc = function(t, e, n) {
					return function(t, e, n, r) {
						return u(e), e <= 0 ? a(t, e) : void 0 !== n ? "string" ==
							typeof r ? a(t, e).fill(n, r) : a(t, e).fill(n) : a(t, e)
					}(null, t, e, n)
				}, c.allocUnsafe = function(t) {
					return f(null, t)
				}, c.allocUnsafeSlow = function(t) {
					return f(null, t)
				}, c.isBuffer = function(t) {
					return !(null == t || !t._isBuffer)
				}, c.compare = function(t, e) {
					if (!c.isBuffer(t) || !c.isBuffer(e)) throw new TypeError(
						"Arguments must be Buffers");
					if (t === e) return 0;
					for (var n = t.length, r = e.length, o = 0, s = Math.min(n, r); o < s; ++o)
						if (t[o] !== e[o]) {
							n = t[o], r = e[o];
							break
						} return n < r ? -1 : r < n ? 1 : 0
				}, c.isEncoding = function(t) {
					switch (String(t).toLowerCase()) {
						case "hex":
						case "utf8":
						case "utf-8":
						case "ascii":
						case "latin1":
						case "binary":
						case "base64":
						case "ucs2":
						case "ucs-2":
						case "utf16le":
						case "utf-16le":
							return !0;
						default:
							return !1
					}
				}, c.concat = function(t, e) {
					if (!s(t)) throw new TypeError(
						'"list" argument must be an Array of Buffers');
					if (0 === t.length) return c.alloc(0);
					var n;
					if (void 0 === e)
						for (e = 0, n = 0; n < t.length; ++n) e += t[n].length;
					var r = c.allocUnsafe(e),
						o = 0;
					for (n = 0; n < t.length; ++n) {
						var i = t[n];
						if (!c.isBuffer(i)) throw new TypeError(
							'"list" argument must be an Array of Buffers');
						i.copy(r, o), o += i.length
					}
					return r
				}, c.byteLength = d, c.prototype._isBuffer = !0, c.prototype.swap16 =
			function() {
					var t = this.length;
					if (t % 2 != 0) throw new RangeError(
						"Buffer size must be a multiple of 16-bits");
					for (var e = 0; e < t; e += 2) g(this, e, e + 1);
					return this
				}, c.prototype.swap32 = function() {
					var t = this.length;
					if (t % 4 != 0) throw new RangeError(
						"Buffer size must be a multiple of 32-bits");
					for (var e = 0; e < t; e += 4) g(this, e, e + 3), g(this, e + 1, e + 2);
					return this
				}, c.prototype.swap64 = function() {
					var t = this.length;
					if (t % 8 != 0) throw new RangeError(
						"Buffer size must be a multiple of 64-bits");
					for (var e = 0; e < t; e += 8) g(this, e, e + 7), g(this, e + 1, e + 6), g(
						this, e + 2, e + 5), g(this, e + 3, e + 4);
					return this
				}, c.prototype.toString = function() {
					var t = 0 | this.length;
					return 0 === t ? "" : 0 === arguments.length ? R(this, 0, t) : y.apply(this,
						arguments)
				}, c.prototype.equals = function(t) {
					if (!c.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
					return this === t || 0 === c.compare(this, t)
				}, c.prototype.inspect = function() {
					var t = "",
						n = e.INSPECT_MAX_BYTES;
					return this.length > 0 && (t = this.toString("hex", 0, n).match(/.{2}/g)
						.join(" "), this.length > n && (t += " ... ")), "<Buffer " + t + ">"
				}, c.prototype.compare = function(t, e, n, r, o) {
					if (!c.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
					if (void 0 === e && (e = 0), void 0 === n && (n = t ? t.length : 0),
						void 0 === r && (r = 0), void 0 === o && (o = this.length), e < 0 || n >
						t.length || r < 0 || o > this.length) throw new RangeError(
						"out of range index");
					if (r >= o && e >= n) return 0;
					if (r >= o) return -1;
					if (e >= n) return 1;
					if (this === t) return 0;
					for (var s = (o >>>= 0) - (r >>>= 0), i = (n >>>= 0) - (e >>>= 0), a = Math
							.min(s, i), h = this.slice(r, o), u = t.slice(e, n), f = 0; f <
						a; ++f)
						if (h[f] !== u[f]) {
							s = h[f], i = u[f];
							break
						} return s < i ? -1 : i < s ? 1 : 0
				}, c.prototype.includes = function(t, e, n) {
					return -1 !== this.indexOf(t, e, n)
				}, c.prototype.indexOf = function(t, e, n) {
					return m(this, t, e, n, !0)
				}, c.prototype.lastIndexOf = function(t, e, n) {
					return m(this, t, e, n, !1)
				}, c.prototype.write = function(t, e, n, r) {
					if (void 0 === e) r = "utf8", n = this.length, e = 0;
					else if (void 0 === n && "string" == typeof e) r = e, n = this.length, e =
					0;
					else {
						if (!isFinite(e)) throw new Error(
							"Buffer.write(string, encoding, offset[, length]) is no longer supported"
							);
						e |= 0, isFinite(n) ? (n |= 0, void 0 === r && (r = "utf8")) : (r = n,
							n = void 0)
					}
					var o = this.length - e;
					if ((void 0 === n || n > o) && (n = o), t.length > 0 && (n < 0 || e < 0) ||
						e > this.length) throw new RangeError(
						"Attempt to write outside buffer bounds");
					r || (r = "utf8");
					for (var s = !1;;) switch (r) {
						case "hex":
							return b(this, t, e, n);
						case "utf8":
						case "utf-8":
							return w(this, t, e, n);
						case "ascii":
							return _(this, t, e, n);
						case "latin1":
						case "binary":
							return E(this, t, e, n);
						case "base64":
							return k(this, t, e, n);
						case "ucs2":
						case "ucs-2":
						case "utf16le":
						case "utf-16le":
							return A(this, t, e, n);
						default:
							if (s) throw new TypeError("Unknown encoding: " + r);
							r = ("" + r).toLowerCase(), s = !0
					}
				}, c.prototype.toJSON = function() {
					return {
						type: "Buffer",
						data: Array.prototype.slice.call(this._arr || this, 0)
					}
				};

			function S(t, e, n) {
				var r = "";
				n = Math.min(t.length, n);
				for (var o = e; o < n; ++o) r += String.fromCharCode(127 & t[o]);
				return r
			}

			function x(t, e, n) {
				var r = "";
				n = Math.min(t.length, n);
				for (var o = e; o < n; ++o) r += String.fromCharCode(t[o]);
				return r
			}

			function P(t, e, n) {
				var r = t.length;
				(!e || e < 0) && (e = 0), (!n || n < 0 || n > r) && (n = r);
				for (var o = "", s = e; s < n; ++s) o += D(t[s]);
				return o
			}

			function C(t, e, n) {
				for (var r = t.slice(e, n), o = "", s = 0; s < r.length; s += 2) o += String
					.fromCharCode(r[s] + 256 * r[s + 1]);
				return o
			}

			function O(t, e, n) {
				if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint");
				if (t + e > n) throw new RangeError("Trying to access beyond buffer length")
			}

			function B(t, e, n, r, o, s) {
				if (!c.isBuffer(t)) throw new TypeError(
					'"buffer" argument must be a Buffer instance');
				if (e > o || e < s) throw new RangeError('"value" argument is out of bounds');
				if (n + r > t.length) throw new RangeError("Index out of range")
			}

			function L(t, e, n, r) {
				e < 0 && (e = 65535 + e + 1);
				for (var o = 0, s = Math.min(t.length - n, 2); o < s; ++o) t[n + o] = (e &
					255 << 8 * (r ? o : 1 - o)) >>> 8 * (r ? o : 1 - o)
			}

			function N(t, e, n, r) {
				e < 0 && (e = 4294967295 + e + 1);
				for (var o = 0, s = Math.min(t.length - n, 4); o < s; ++o) t[n + o] = e >>> 8 *
					(r ? o : 3 - o) & 255
			}

			function j(t, e, n, r, o, s) {
				if (n + r > t.length) throw new RangeError("Index out of range");
				if (n < 0) throw new RangeError("Index out of range")
			}

			function I(t, e, n, r, s) {
				return s || j(t, 0, n, 4), o.write(t, e, n, r, 23, 4), n + 4
			}

			function M(t, e, n, r, s) {
				return s || j(t, 0, n, 8), o.write(t, e, n, r, 52, 8), n + 8
			}
			c.prototype.slice = function(t, e) {
				var n, r = this.length;
				if ((t = ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), (e =
						void 0 === e ? r : ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (
						e = r), e < t && (e = t), c.TYPED_ARRAY_SUPPORT)(n = this.subarray(
					t, e)).__proto__ = c.prototype;
				else {
					var o = e - t;
					n = new c(o, void 0);
					for (var s = 0; s < o; ++s) n[s] = this[s + t]
				}
				return n
			}, c.prototype.readUIntLE = function(t, e, n) {
				t |= 0, e |= 0, n || O(t, e, this.length);
				for (var r = this[t], o = 1, s = 0; ++s < e && (o *= 256);) r += this[t +
					s] * o;
				return r
			}, c.prototype.readUIntBE = function(t, e, n) {
				t |= 0, e |= 0, n || O(t, e, this.length);
				for (var r = this[t + --e], o = 1; e > 0 && (o *= 256);) r += this[t + --
					e] * o;
				return r
			}, c.prototype.readUInt8 = function(t, e) {
				return e || O(t, 1, this.length), this[t]
			}, c.prototype.readUInt16LE = function(t, e) {
				return e || O(t, 2, this.length), this[t] | this[t + 1] << 8
			}, c.prototype.readUInt16BE = function(t, e) {
				return e || O(t, 2, this.length), this[t] << 8 | this[t + 1]
			}, c.prototype.readUInt32LE = function(t, e) {
				return e || O(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t +
					2] << 16) + 16777216 * this[t + 3]
			}, c.prototype.readUInt32BE = function(t, e) {
				return e || O(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 |
					this[t + 2] << 8 | this[t + 3])
			}, c.prototype.readIntLE = function(t, e, n) {
				t |= 0, e |= 0, n || O(t, e, this.length);
				for (var r = this[t], o = 1, s = 0; ++s < e && (o *= 256);) r += this[t +
					s] * o;
				return r >= (o *= 128) && (r -= Math.pow(2, 8 * e)), r
			}, c.prototype.readIntBE = function(t, e, n) {
				t |= 0, e |= 0, n || O(t, e, this.length);
				for (var r = e, o = 1, s = this[t + --r]; r > 0 && (o *= 256);) s += this[
					t + --r] * o;
				return s >= (o *= 128) && (s -= Math.pow(2, 8 * e)), s
			}, c.prototype.readInt8 = function(t, e) {
				return e || O(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) :
					this[t]
			}, c.prototype.readInt16LE = function(t, e) {
				e || O(t, 2, this.length);
				var n = this[t] | this[t + 1] << 8;
				return 32768 & n ? 4294901760 | n : n
			}, c.prototype.readInt16BE = function(t, e) {
				e || O(t, 2, this.length);
				var n = this[t + 1] | this[t] << 8;
				return 32768 & n ? 4294901760 | n : n
			}, c.prototype.readInt32LE = function(t, e) {
				return e || O(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t +
					2] << 16 | this[t + 3] << 24
			}, c.prototype.readInt32BE = function(t, e) {
				return e || O(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[
					t + 2] << 8 | this[t + 3]
			}, c.prototype.readFloatLE = function(t, e) {
				return e || O(t, 4, this.length), o.read(this, t, !0, 23, 4)
			}, c.prototype.readFloatBE = function(t, e) {
				return e || O(t, 4, this.length), o.read(this, t, !1, 23, 4)
			}, c.prototype.readDoubleLE = function(t, e) {
				return e || O(t, 8, this.length), o.read(this, t, !0, 52, 8)
			}, c.prototype.readDoubleBE = function(t, e) {
				return e || O(t, 8, this.length), o.read(this, t, !1, 52, 8)
			}, c.prototype.writeUIntLE = function(t, e, n, r) {
				(t = +t, e |= 0, n |= 0, r) || B(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);
				var o = 1,
					s = 0;
				for (this[e] = 255 & t; ++s < n && (o *= 256);) this[e + s] = t / o & 255;
				return e + n
			}, c.prototype.writeUIntBE = function(t, e, n, r) {
				(t = +t, e |= 0, n |= 0, r) || B(this, t, e, n, Math.pow(2, 8 * n) - 1, 0);
				var o = n - 1,
					s = 1;
				for (this[e + o] = 255 & t; --o >= 0 && (s *= 256);) this[e + o] = t / s &
					255;
				return e + n
			}, c.prototype.writeUInt8 = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 1, 255, 0), c
					.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1
			}, c.prototype.writeUInt16LE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 2, 65535, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : L(
						this, t, e, !0), e + 2
			}, c.prototype.writeUInt16BE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 2, 65535, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : L(
						this, t, e, !1), e + 2
			}, c.prototype.writeUInt32LE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 4, 4294967295, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16,
						this[e + 1] = t >>> 8, this[e] = 255 & t) : N(this, t, e, !0), e + 4
			}, c.prototype.writeUInt32BE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 4, 4294967295, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16,
						this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : N(this, t, e, !1),
					e + 4
			}, c.prototype.writeIntLE = function(t, e, n, r) {
				if (t = +t, e |= 0, !r) {
					var o = Math.pow(2, 8 * n - 1);
					B(this, t, e, n, o - 1, -o)
				}
				var s = 0,
					i = 1,
					a = 0;
				for (this[e] = 255 & t; ++s < n && (i *= 256);) t < 0 && 0 === a && 0 !==
					this[e + s - 1] && (a = 1), this[e + s] = (t / i >> 0) - a & 255;
				return e + n
			}, c.prototype.writeIntBE = function(t, e, n, r) {
				if (t = +t, e |= 0, !r) {
					var o = Math.pow(2, 8 * n - 1);
					B(this, t, e, n, o - 1, -o)
				}
				var s = n - 1,
					i = 1,
					a = 0;
				for (this[e + s] = 255 & t; --s >= 0 && (i *= 256);) t < 0 && 0 === a &&
					0 !== this[e + s + 1] && (a = 1), this[e + s] = (t / i >> 0) - a & 255;
				return e + n
			}, c.prototype.writeInt8 = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 1, 127, -128), c
					.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1),
					this[e] = 255 & t, e + 1
			}, c.prototype.writeInt16LE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 2, 32767, -32768), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : L(
						this, t, e, !0), e + 2
			}, c.prototype.writeInt16BE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 2, 32767, -32768), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : L(
						this, t, e, !1), e + 2
			}, c.prototype.writeInt32LE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 4, 2147483647, -2147483648), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[
						e + 2] = t >>> 16, this[e + 3] = t >>> 24) : N(this, t, e, !0), e +
					4
			}, c.prototype.writeInt32BE = function(t, e, n) {
				return t = +t, e |= 0, n || B(this, t, e, 4, 2147483647, -2147483648), t <
					0 && (t = 4294967295 + t + 1), c.TYPED_ARRAY_SUPPORT ? (this[e] = t >>>
						24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] =
						255 & t) : N(this, t, e, !1), e + 4
			}, c.prototype.writeFloatLE = function(t, e, n) {
				return I(this, t, e, !0, n)
			}, c.prototype.writeFloatBE = function(t, e, n) {
				return I(this, t, e, !1, n)
			}, c.prototype.writeDoubleLE = function(t, e, n) {
				return M(this, t, e, !0, n)
			}, c.prototype.writeDoubleBE = function(t, e, n) {
				return M(this, t, e, !1, n)
			}, c.prototype.copy = function(t, e, n, r) {
				if (n || (n = 0), r || 0 === r || (r = this.length), e >= t.length && (e = t
						.length), e || (e = 0), r > 0 && r < n && (r = n), r === n)
			return 0;
				if (0 === t.length || 0 === this.length) return 0;
				if (e < 0) throw new RangeError("targetStart out of bounds");
				if (n < 0 || n >= this.length) throw new RangeError(
					"sourceStart out of bounds");
				if (r < 0) throw new RangeError("sourceEnd out of bounds");
				r > this.length && (r = this.length), t.length - e < r - n && (r = t
					.length - e + n);
				var o, s = r - n;
				if (this === t && n < e && e < r)
					for (o = s - 1; o >= 0; --o) t[o + e] = this[o + n];
				else if (s < 1e3 || !c.TYPED_ARRAY_SUPPORT)
					for (o = 0; o < s; ++o) t[o + e] = this[o + n];
				else Uint8Array.prototype.set.call(t, this.subarray(n, n + s), e);
				return s
			}, c.prototype.fill = function(t, e, n, r) {
				if ("string" == typeof t) {
					if ("string" == typeof e ? (r = e, e = 0, n = this.length) : "string" ==
						typeof n && (r = n, n = this.length), 1 === t.length) {
						var o = t.charCodeAt(0);
						o < 256 && (t = o)
					}
					if (void 0 !== r && "string" != typeof r) throw new TypeError(
						"encoding must be a string");
					if ("string" == typeof r && !c.isEncoding(r)) throw new TypeError(
						"Unknown encoding: " + r)
				} else "number" == typeof t && (t &= 255);
				if (e < 0 || this.length < e || this.length < n) throw new RangeError(
					"Out of range index");
				if (n <= e) return this;
				var s;
				if (e >>>= 0, n = void 0 === n ? this.length : n >>> 0, t || (t = 0),
					"number" == typeof t)
					for (s = e; s < n; ++s) this[s] = t;
				else {
					var i = c.isBuffer(t) ? t : Y(new c(t, r).toString()),
						a = i.length;
					for (s = 0; s < n - e; ++s) this[s + e] = i[s % a]
				}
				return this
			};
			var U = /[^+\/0-9A-Za-z-_]/g;

			function D(t) {
				return t < 16 ? "0" + t.toString(16) : t.toString(16)
			}

			function Y(t, e) {
				var n;
				e = e || 1 / 0;
				for (var r = t.length, o = null, s = [], i = 0; i < r; ++i) {
					if ((n = t.charCodeAt(i)) > 55295 && n < 57344) {
						if (!o) {
							if (n > 56319) {
								(e -= 3) > -1 && s.push(239, 191, 189);
								continue
							}
							if (i + 1 === r) {
								(e -= 3) > -1 && s.push(239, 191, 189);
								continue
							}
							o = n;
							continue
						}
						if (n < 56320) {
							(e -= 3) > -1 && s.push(239, 191, 189), o = n;
							continue
						}
						n = 65536 + (o - 55296 << 10 | n - 56320)
					} else o && (e -= 3) > -1 && s.push(239, 191, 189);
					if (o = null, n < 128) {
						if ((e -= 1) < 0) break;
						s.push(n)
					} else if (n < 2048) {
						if ((e -= 2) < 0) break;
						s.push(n >> 6 | 192, 63 & n | 128)
					} else if (n < 65536) {
						if ((e -= 3) < 0) break;
						s.push(n >> 12 | 224, n >> 6 & 63 | 128, 63 & n | 128)
					} else {
						if (!(n < 1114112)) throw new Error("Invalid code point");
						if ((e -= 4) < 0) break;
						s.push(n >> 18 | 240, n >> 12 & 63 | 128, n >> 6 & 63 | 128, 63 & n |
							128)
					}
				}
				return s
			}

			function q(t) {
				return r.toByteArray(function(t) {
					if ((t = function(t) {
							return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
						}(t).replace(U, "")).length < 2) return "";
					for (; t.length % 4 != 0;) t += "=";
					return t
				}(t))
			}

			function F(t, e, n, r) {
				for (var o = 0; o < r && !(o + n >= e.length || o >= t.length); ++o) e[o + n] =
					t[o];
				return o
			}
		}).call(this, n(32))
	}, function(t, e) {
		var n;
		n = function() {
			return this
		}();
		try {
			n = n || new Function("return this")()
		} catch (t) {
			"object" == typeof window && (n = window)
		}
		t.exports = n
	}, function(t, e, n) {
		"use strict";
		e.byteLength = function(t) {
			var e = h(t),
				n = e[0],
				r = e[1];
			return 3 * (n + r) / 4 - r
		}, e.toByteArray = function(t) {
			var e, n, r = h(t),
				i = r[0],
				a = r[1],
				c = new s(function(t, e, n) {
					return 3 * (e + n) / 4 - n
				}(0, i, a)),
				u = 0,
				f = a > 0 ? i - 4 : i;
			for (n = 0; n < f; n += 4) e = o[t.charCodeAt(n)] << 18 | o[t.charCodeAt(n + 1)] <<
				12 | o[t.charCodeAt(n + 2)] << 6 | o[t.charCodeAt(n + 3)], c[u++] = e >> 16 &
				255, c[u++] = e >> 8 & 255, c[u++] = 255 & e;
			2 === a && (e = o[t.charCodeAt(n)] << 2 | o[t.charCodeAt(n + 1)] >> 4, c[u++] =
				255 & e);
			1 === a && (e = o[t.charCodeAt(n)] << 10 | o[t.charCodeAt(n + 1)] << 4 | o[t
				.charCodeAt(n + 2)] >> 2, c[u++] = e >> 8 & 255, c[u++] = 255 & e);
			return c
		}, e.fromByteArray = function(t) {
			for (var e, n = t.length, o = n % 3, s = [], i = 0, a = n - o; i < a; i += 16383) s
				.push(u(t, i, i + 16383 > a ? a : i + 16383));
			1 === o ? (e = t[n - 1], s.push(r[e >> 2] + r[e << 4 & 63] + "==")) : 2 === o && (
				e = (t[n - 2] << 8) + t[n - 1], s.push(r[e >> 10] + r[e >> 4 & 63] + r[e <<
					2 & 63] + "="));
			return s.join("")
		};
		for (var r = [], o = [], s = "undefined" != typeof Uint8Array ? Uint8Array : Array, i =
				"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, c = i
				.length; a < c; ++a) r[a] = i[a], o[i.charCodeAt(a)] = a;

		function h(t) {
			var e = t.length;
			if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
			var n = t.indexOf("=");
			return -1 === n && (n = e), [n, n === e ? 0 : 4 - n % 4]
		}

		function u(t, e, n) {
			for (var o, s, i = [], a = e; a < n; a += 3) o = (t[a] << 16 & 16711680) + (t[a + 1] <<
				8 & 65280) + (255 & t[a + 2]), i.push(r[(s = o) >> 18 & 63] + r[s >> 12 & 63] +
				r[s >> 6 & 63] + r[63 & s]);
			return i.join("")
		}
		o["-".charCodeAt(0)] = 62, o["_".charCodeAt(0)] = 63
	}, function(t, e) {
		/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
		e.read = function(t, e, n, r, o) {
			var s, i, a = 8 * o - r - 1,
				c = (1 << a) - 1,
				h = c >> 1,
				u = -7,
				f = n ? o - 1 : 0,
				p = n ? -1 : 1,
				l = t[e + f];
			for (f += p, s = l & (1 << -u) - 1, l >>= -u, u += a; u > 0; s = 256 * s + t[e + f],
				f += p, u -= 8);
			for (i = s & (1 << -u) - 1, s >>= -u, u += r; u > 0; i = 256 * i + t[e + f], f += p,
				u -= 8);
			if (0 === s) s = 1 - h;
			else {
				if (s === c) return i ? NaN : 1 / 0 * (l ? -1 : 1);
				i += Math.pow(2, r), s -= h
			}
			return (l ? -1 : 1) * i * Math.pow(2, s - r)
		}, e.write = function(t, e, n, r, o, s) {
			var i, a, c, h = 8 * s - o - 1,
				u = (1 << h) - 1,
				f = u >> 1,
				p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
				l = r ? 0 : s - 1,
				d = r ? 1 : -1,
				y = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;
			for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, i = u) : (i =
					Math.floor(Math.log(e) / Math.LN2), e * (c = Math.pow(2, -i)) < 1 && (i--,
						c *= 2), (e += i + f >= 1 ? p / c : p * Math.pow(2, 1 - f)) * c >= 2 &&
					(i++, c /= 2), i + f >= u ? (a = 0, i = u) : i + f >= 1 ? (a = (e * c - 1) *
						Math.pow(2, o), i += f) : (a = e * Math.pow(2, f - 1) * Math.pow(2, o),
						i = 0)); o >= 8; t[n + l] = 255 & a, l += d, a /= 256, o -= 8);
			for (i = i << o | a, h += o; h > 0; t[n + l] = 255 & i, l += d, i /= 256, h -= 8);
			t[n + l - d] |= 128 * y
		}
	}, function(t, e) {
		var n = {}.toString;
		t.exports = Array.isArray || function(t) {
			return "[object Array]" == n.call(t)
		}
	}, function(t, e, n) {
		const r = n(37),
			o = n(38),
			s = n(0)("@hyoga/uni-socket"),
			i = uni || wx;
		class a extends r {
			constructor(t, e, n) {
				super(), this._readyState = a.CONNECTING, this._socket = null, null !== t && (
					Array.isArray(e) ? e = e.join(", ") : "object" == typeof e && null !==
					e && (n = e, e = void 0), this.initAsClient(t, e, n))
			}
			initAsClient(t, e, n) {
				Object.assign(n, {
					url: t,
					header: {
						"content-type": "application/json"
					},
					protocols: e,
					timeout: 25e3
				}), this._socket = this.createConnection(n), this.addSocketEventListeners()
			}
			createConnection(t) {
				return i.connectSocket({
					complete: () => {},
					...t
				})
			}
			addSocketEventListeners() {
				this._socket.onOpen(() => {
					this._readyState = a.OPEN, this.onopen()
				}), this._socket.onClose(t => {
					s("onclose: ", t), this._readyState = a.CLOSED, this.onclose(t.code,
						t.reason)
				}), this._socket.onError(t => {
					s("onerror: ", t), this.onerror(t)
				}), this._socket.onMessage(t => {
					this.onmessage(t)
				})
			}
			send(t) {
				if (s("send data: ", t, this._readyState), this._readyState === a.CONNECTING)
					throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
				"number" == typeof t && (t = t.toString()), this._readyState === a.OPEN && this
					._socket.send({
						data: t
					})
			}
			close(t, e) {
				s("close socket: ", t, e), this._readyState = a.CLOSING, this._socket.close({
					code: t,
					reason: e
				})
			}
		} ["CONNECTING", "OPEN", "CLOSING", "CLOSED"].forEach((t, e) => {
			a[t] = e
		});
		["open", "error", "close", "message"].forEach(t => {
				Object.defineProperty(a.prototype, "on" + t, {
					get() {
						const e = this.listeners(t);
						for (var n = 0; n < e.length; n++)
							if (e[n]._listener) return e[n]._listener
					},
					set(e) {
						const n = this.listeners(t);
						for (var r = 0; r < n.length; r++) n[r]._listener && this
							.removeListener(t, n[r]);
						this.addEventListener(t, e)
					}
				})
			}), a.prototype.addEventListener = o.addEventListener, a.prototype.removeEventListener =
			o.removeEventListener, t.exports = a
	}, function(t, e, n) {
		"use strict";
		var r, o = "object" == typeof Reflect ? Reflect : null,
			s = o && "function" == typeof o.apply ? o.apply : function(t, e, n) {
				return Function.prototype.apply.call(t, e, n)
			};
		r = o && "function" == typeof o.ownKeys ? o.ownKeys : Object.getOwnPropertySymbols ?
			function(t) {
				return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))
			} : function(t) {
				return Object.getOwnPropertyNames(t)
			};
		var i = Number.isNaN || function(t) {
			return t != t
		};

		function a() {
			a.init.call(this)
		}
		t.exports = a, t.exports.once = function(t, e) {
				return new Promise((function(n, r) {
					function o() {
						void 0 !== s && t.removeListener("error", s), n([].slice.call(
							arguments))
					}
					var s;
					"error" !== e && (s = function(n) {
						t.removeListener(e, o), r(n)
					}, t.once("error", s)), t.once(e, o)
				}))
			}, a.EventEmitter = a, a.prototype._events = void 0, a.prototype._eventsCount = 0, a
			.prototype._maxListeners = void 0;
		var c = 10;

		function h(t) {
			if ("function" != typeof t) throw new TypeError(
				'The "listener" argument must be of type Function. Received type ' +
				typeof t)
		}

		function u(t) {
			return void 0 === t._maxListeners ? a.defaultMaxListeners : t._maxListeners
		}

		function f(t, e, n, r) {
			var o, s, i, a;
			if (h(n), void 0 === (s = t._events) ? (s = t._events = Object.create(null), t
					._eventsCount = 0) : (void 0 !== s.newListener && (t.emit("newListener", e, n
					.listener ? n.listener : n), s = t._events), i = s[e]), void 0 === i) i = s[e] =
				n, ++t._eventsCount;
			else if ("function" == typeof i ? i = s[e] = r ? [n, i] : [i, n] : r ? i.unshift(n) : i
				.push(n), (o = u(t)) > 0 && i.length > o && !i.warned) {
				i.warned = !0;
				var c = new Error("Possible EventEmitter memory leak detected. " + i.length + " " +
					String(e) +
					" listeners added. Use emitter.setMaxListeners() to increase limit");
				c.name = "MaxListenersExceededWarning", c.emitter = t, c.type = e, c.count = i
					.length, a = c, console && console.warn && console.warn(a)
			}
			return t
		}

		function p() {
			if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this
				.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this
				.listener.apply(this.target, arguments)
		}

		function l(t, e, n) {
			var r = {
					fired: !1,
					wrapFn: void 0,
					target: t,
					type: e,
					listener: n
				},
				o = p.bind(r);
			return o.listener = n, r.wrapFn = o, o
		}

		function d(t, e, n) {
			var r = t._events;
			if (void 0 === r) return [];
			var o = r[e];
			return void 0 === o ? [] : "function" == typeof o ? n ? [o.listener || o] : [o] : n ?
				function(t) {
					for (var e = new Array(t.length), n = 0; n < e.length; ++n) e[n] = t[n]
						.listener || t[n];
					return e
				}(o) : g(o, o.length)
		}

		function y(t) {
			var e = this._events;
			if (void 0 !== e) {
				var n = e[t];
				if ("function" == typeof n) return 1;
				if (void 0 !== n) return n.length
			}
			return 0
		}

		function g(t, e) {
			for (var n = new Array(e), r = 0; r < e; ++r) n[r] = t[r];
			return n
		}
		Object.defineProperty(a, "defaultMaxListeners", {
				enumerable: !0,
				get: function() {
					return c
				},
				set: function(t) {
					if ("number" != typeof t || t < 0 || i(t)) throw new RangeError(
						'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
						t + ".");
					c = t
				}
			}), a.init = function() {
				void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (
						this._events = Object.create(null), this._eventsCount = 0), this
					._maxListeners = this._maxListeners || void 0
			}, a.prototype.setMaxListeners = function(t) {
				if ("number" != typeof t || t < 0 || i(t)) throw new RangeError(
					'The value of "n" is out of range. It must be a non-negative number. Received ' +
					t + ".");
				return this._maxListeners = t, this
			}, a.prototype.getMaxListeners = function() {
				return u(this)
			}, a.prototype.emit = function(t) {
				for (var e = [], n = 1; n < arguments.length; n++) e.push(arguments[n]);
				var r = "error" === t,
					o = this._events;
				if (void 0 !== o) r = r && void 0 === o.error;
				else if (!r) return !1;
				if (r) {
					var i;
					if (e.length > 0 && (i = e[0]), i instanceof Error) throw i;
					var a = new Error("Unhandled error." + (i ? " (" + i.message + ")" : ""));
					throw a.context = i, a
				}
				var c = o[t];
				if (void 0 === c) return !1;
				if ("function" == typeof c) s(c, this, e);
				else {
					var h = c.length,
						u = g(c, h);
					for (n = 0; n < h; ++n) s(u[n], this, e)
				}
				return !0
			}, a.prototype.addListener = function(t, e) {
				return f(this, t, e, !1)
			}, a.prototype.on = a.prototype.addListener, a.prototype.prependListener = function(t,
				e) {
				return f(this, t, e, !0)
			}, a.prototype.once = function(t, e) {
				return h(e), this.on(t, l(this, t, e)), this
			}, a.prototype.prependOnceListener = function(t, e) {
				return h(e), this.prependListener(t, l(this, t, e)), this
			}, a.prototype.removeListener = function(t, e) {
				var n, r, o, s, i;
				if (h(e), void 0 === (r = this._events)) return this;
				if (void 0 === (n = r[t])) return this;
				if (n === e || n.listener === e) 0 == --this._eventsCount ? this._events = Object
					.create(null) : (delete r[t], r.removeListener && this.emit("removeListener", t,
						n.listener || e));
				else if ("function" != typeof n) {
					for (o = -1, s = n.length - 1; s >= 0; s--)
						if (n[s] === e || n[s].listener === e) {
							i = n[s].listener, o = s;
							break
						} if (o < 0) return this;
					0 === o ? n.shift() : function(t, e) {
							for (; e + 1 < t.length; e++) t[e] = t[e + 1];
							t.pop()
						}(n, o), 1 === n.length && (r[t] = n[0]), void 0 !== r.removeListener &&
						this.emit("removeListener", t, i || e)
				}
				return this
			}, a.prototype.off = a.prototype.removeListener, a.prototype.removeAllListeners =
			function(t) {
				var e, n, r;
				if (void 0 === (n = this._events)) return this;
				if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events =
						Object.create(null), this._eventsCount = 0) : void 0 !== n[t] && (0 ==
						--this._eventsCount ? this._events = Object.create(null) : delete n[t]),
					this;
				if (0 === arguments.length) {
					var o, s = Object.keys(n);
					for (r = 0; r < s.length; ++r) "removeListener" !== (o = s[r]) && this
						.removeAllListeners(o);
					return this.removeAllListeners("removeListener"), this._events = Object.create(
						null), this._eventsCount = 0, this
				}
				if ("function" == typeof(e = n[t])) this.removeListener(t, e);
				else if (void 0 !== e)
					for (r = e.length - 1; r >= 0; r--) this.removeListener(t, e[r]);
				return this
			}, a.prototype.listeners = function(t) {
				return d(this, t, !0)
			}, a.prototype.rawListeners = function(t) {
				return d(this, t, !1)
			}, a.listenerCount = function(t, e) {
				return "function" == typeof t.listenerCount ? t.listenerCount(e) : y.call(t, e)
			}, a.prototype.listenerCount = y, a.prototype.eventNames = function() {
				return this._eventsCount > 0 ? r(this._events) : []
			}
	}, function(t, e, n) {
		"use strict";
		class r {
			constructor(t, e) {
				this.target = e, this.type = t
			}
		}
		class o extends r {
			constructor(t, e) {
				super("message", e), this.data = t
			}
		}
		class s extends r {
			constructor(t, e, n) {
				super("close", n), this.wasClean = n._closeFrameReceived && n._closeFrameSent,
					this.reason = e, this.code = t
			}
		}
		class i extends r {
			constructor(t) {
				super("open", t)
			}
		}
		class a extends r {
			constructor(t, e) {
				super("error", e), this.message = t.message, this.error = t
			}
		}
		const c = {
			addEventListener(t, e) {
				function n(t) {
					e.call(this, new o(t, this))
				}

				function r(t, n) {
					e.call(this, new s(t, n, this))
				}

				function c(t) {
					e.call(this, new a(t, this))
				}

				function h() {
					e.call(this, new i(this))
				}
				"function" == typeof e && ("message" === t ? (n._listener = e, this.on(t, n)) :
					"close" === t ? (r._listener = e, this.on(t, r)) : "error" === t ? (c
						._listener = e, this.on(t, c)) : "open" === t ? (h._listener = e,
						this.on(t, h)) : this.on(t, e))
			},
			removeEventListener(t, e) {
				const n = this.listeners(t);
				for (var r = 0; r < n.length; r++) n[r] !== e && n[r]._listener !== e || this
					.removeListener(t, n[r])
			}
		};
		t.exports = c
	}, function(t, e, n) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.reconstructPacket = e.deconstructPacket = void 0;
		const r = n(16);
		e.deconstructPacket = function(t) {
			const e = [],
				n = t.data,
				o = t;
			return o.data = function t(e, n) {
				if (!e) return e;
				if (r.isBinary(e)) {
					const t = {
						_placeholder: !0,
						num: n.length
					};
					return n.push(e), t
				}
				if (Array.isArray(e)) {
					const r = new Array(e.length);
					for (let o = 0; o < e.length; o++) r[o] = t(e[o], n);
					return r
				}
				if ("object" == typeof e && !(e instanceof Date)) {
					const r = {};
					for (const o in e) e.hasOwnProperty(o) && (r[o] = t(e[o], n));
					return r
				}
				return e
			}(n, e), o.attachments = e.length, {
				packet: o,
				buffers: e
			}
		}, e.reconstructPacket = function(t, e) {
			return t.data = function t(e, n) {
				if (!e) return e;
				if (e && e._placeholder) return n[e.num];
				if (Array.isArray(e))
					for (let r = 0; r < e.length; r++) e[r] = t(e[r], n);
				else if ("object" == typeof e)
					for (const r in e) e.hasOwnProperty(r) && (e[r] = t(e[r], n));
				return e
			}(t.data, e), t.attachments = void 0, t
		}
	}, function(t, e) {
		function n(t) {
			t = t || {}, this.ms = t.min || 100, this.max = t.max || 1e4, this.factor = t.factor ||
				2, this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0
		}
		t.exports = n, n.prototype.duration = function() {
			var t = this.ms * Math.pow(this.factor, this.attempts++);
			if (this.jitter) {
				var e = Math.random(),
					n = Math.floor(e * this.jitter * t);
				t = 0 == (1 & Math.floor(10 * e)) ? t - n : t + n
			}
			return 0 | Math.min(t, this.max)
		}, n.prototype.reset = function() {
			this.attempts = 0
		}, n.prototype.setMin = function(t) {
			this.ms = t
		}, n.prototype.setMax = function(t) {
			this.max = t
		}, n.prototype.setJitter = function(t) {
			this.jitter = t
		}
	}])
}));